一、匿名函数
语法:“|参数名| 语句”
参考下面的这个示例:
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
let x =...("{}+{}={}", 1, 2, x);
//匿名函数
let add = |x, y| x + y;
println!...("{}+{}={}", 1, 2, add(1, 2));
}
可以看到,匿名函数不用刻意指定参数类型,rust会自动推断,匿名函数常用于精减代码,比如:
let a = (1..10).filter...二、闭包
rust中闭包本质就是一个匿名函数,它与函数最大的区别之一,在于闭包能捕获上下文环境中的变量
let x = 12345;
let t = || println!...{"x={}",x};
t();
x是在闭包语句之外定义的变量,但是闭包里仍可以访问,这是普通函数做不到的。