可以在闭包的参数列表中指定捕获变量的捕获方式。捕获变量的形式可以是&变量名
(引用方式)或变量名
(值方式)。例如:
let num1 = 5;
let num2 = 10;
let closure = |&x, y| {
println!("num1: {}", x);
println!("num2: {}", y);
};
closure(&num1, num2);
在上面的例子中,num1
是以引用的方式被捕获的,num2
是以值的方式被捕获的。可以在闭包的参数列表中任意指定捕获方式,以实现不同的需求。