如果你想强制闭包取得它在环境中使用的值的所有权,你可以
move在参数列表之前使用关键字
我注意到我的代码不会拥有这些值的所有权。我的代码和给定示例之间的差异是:
Vecx可变而不是不可变示例 1: Rust 编程语言
fn main() {
let x = vec![1, 2, 3];
let equal_to_x = move |z| z == x;
println!("can't use x here: {:?}", x);
let y = vec![1, 2, 3];
assert!(equal_to_x(y));
}
Run Code Online (Sandbox Code Playgroud)
示例 2:我的代码
fn main() {
let mut x = 1;
let equal_to_x = move |z| z == x;
println!("can use x here: {:?}", x);
let y = 1;
assert!(equal_to_x(y));
}
Run Code Online (Sandbox Code Playgroud)
为什么示例 …