Rust 闭包
在Rust中,闭包Closures就是匿名函数
// 无参数闭包
let hello = || println!("Hello!");
hello();
// 带参数闭包
let add = |a, b| a + b;
println!("Sum: {}", add(2, 3)); // 输出:5
// 类型标注(可选)
let square = |x: i32| -> i32 { x * x };
let num = 10;
// 捕获 num 的不可变引用
let add_num = |x| x + num;
println!("Result: {}", add_num(5)); // 输出:15
// 可修改变量捕获
let mut count = 0;
let mut inc = || {
count += 1; // 捕获可变引用
println!("Count: {}", count);
};
inc(); // 输出:Count: 1
inc(); // 输出:Count: 2
let data = vec![1, 2, 3];
// 使用 move 强制获取所有权
let closure = move || {
println!("Data length: {}", data.len());
};
closure();
// println!("{:?}", data); // 错误!所有权已移入闭包

浙公网安备 33010602011771号