解除引用闭包参数

5

标题可能不太合适,但这是一个例子:

fn foo(impl Fn(&u32) -> bool) { ... }

foo(|x| *x < 100);
foo(|&x| x < 100);

这两个用于 foo 的闭包是等价的吗?我看到有人在某些地方使用第二种形式,但我在官方书籍中找不到它。那么 &x 是一个解构的部分吗?


你好!我将此关闭为重复问题,因为这个问题已经被问了很多次。简而言之:是的,&x 是解构的一部分,并且等同于解引用(仅适用于 Copy 类型)。如果您认为重复问题不正确,因为它们没有回答您的问题,请告诉我们! - Lukas Kalbertodt
1个回答

2
这被称为引用模式
引用模式: (&|&&) mut? 模式
引用模式对正在匹配的指针进行解引用,因此借用它们。
所以是的,它们是等价的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接