在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、匿名函数 语法:“|参数名| 语句” 参考下面的这个示例: fn add(a: i32, b: i32) -> i32 { a + b } fn main() { let x = add(1, 2); println!("{}+{}={}", 1, 2, x); //匿名函数 let add = |x, y| x + y; println!("{}+{}={}", 1, 2, add(1, 2)); } 可以看到,匿名函数不用刻意指定参数类型,rust会自动推断,匿名函数常用于精减代码,比如: let a = (1..10).filter(|x| (x % 2 == 0)); for x in a{ print!("{} ",x); } 这样就快速找出10以内的偶数。
二、闭包 rust中闭包本质就是一个匿名函数,它与函数最大的区别之一,在于闭包能捕获上下文环境中的变量 let x = 12345; let t = || println! {"x={}",x}; t(); x是在闭包语句之外定义的变量,但是闭包里仍可以访问,这是普通函数做不到的。
闭包还可以添加move关键字,强制将变量的所有权移动到闭包内,这样对于没有实现Copy trait的变量类型,闭包调用完成后,就无法再访问原来的变量了。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论