Rust 取消对闭包参数的引用
标题可能不合适,这里是一个示例:Rust 取消对闭包参数的引用,rust,Rust,标题可能不合适,这里是一个示例: fn foo(impl Fn(&u32) -> bool) { ... } foo(|x| *x < 100); foo(|&x| x < 100); fn foo(impl-fn(&u32)->bool){…} foo(|x |*x
fn foo(impl Fn(&u32) -> bool) { ... }
foo(|x| *x < 100);
foo(|&x| x < 100);
fn foo(impl-fn(&u32)->bool){…}
foo(|x |*x<100);
foo(x<100);
传递给foo
的两个闭包是否等效?我在一些地方看到人们使用第二种形式,但我在官方书籍中找不到。&x
部分是一个分解结构吗?这称为:
参考模式:
(&
|&
)mut
?图案
引用模式取消对匹配指针的引用,从而借用它们
是的,它们是等价的。你好!这个问题已经被问了很多次了,所以我把这个问题弄得一团糟。简而言之:yes
&x
是分解结构的一部分,相当于取消引用(仅适用于复制
类型)。如果您认为副本不正确,因为它们没有回答您的问题,请让我们知道!