Rust教程通常建议通过引用传递参数:
fn my_func(x: &Something)
这使得需要在调用处显式地获取该值的引用:
my_func(&my_value).
在IT技术中,通常可以使用模式匹配中使用的ref
关键字:
fn my_func(ref x: Something)
我可以通过以下方式调用它:
my_func(my_value)
就内存方面而言,这段代码会如我所愿地工作,还是会在调用my_func
之前将my_value
复制到栈上,然后获取该副本的引用?
Something
类型没有实现Copy
,所以它会被移动。最好使用“按值传递”而不是复制/移动。 - jsstuball