要捕获外部变量的FnOnce闭包,可以使用move关键字来将变量移动到闭包中。以下是一个示例代码:
fn main() {
let x = 42;
let closure = move || {
println!("The value of x is: {}", x);
};
closure(); // 调用闭包
}
在这个示例中,我们定义了一个变量x并赋值为42。然后,我们创建了一个闭包,并使用move关键字来捕获x变量。这意味着闭包将拥有x的所有权,并且可以在闭包内部访问它。最后,我们调用了闭包来打印出x的值。
需要注意的是,由于闭包捕获了x的所有权,所以我们无法再在闭包外部使用x变量。如果尝试在闭包外部使用x,将会编译错误。