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
是分解结构的一部分,相当于取消引用(仅适用于
复制
类型)。如果您认为副本不正确,因为它们没有回答您的问题,请让我们知道!