Rust编程(五)终章:查漏补缺-闭包 & 迭代器

时间:2024-04-03 20:01:59

闭包(Closure)通常是指词法闭包,是一个持有外部环境变量的函数。外部环境是指闭包定义时所在的词法作用域。外部环境变量,在函数式编程范式中也被称为*变量,是指并不是在闭包内定义的变量。将*变量和自身绑定的函数就是闭包。
闭包的两大特性:

  • 延迟执行。返回的闭包只有在需要调用的时候才会执行。
  • 捕获环境变量。闭包会获取其定义时所在作用域中的*变量,以供之后调用时使用。

Rust的闭包语法形式参考了Ruby语言的lambda表达式:

fn main(){
	let add_op = |a:i32,b:i32| -> i32 {a+b};
	let c = add_op(1,2);
	println!("1+2={}",c);
}

闭包的语法都大差不差,rust,ruby,python等都差不多一个样,
在这里插入图片描述
rust闭包的具体实现方式可以看Rust编程之道里面有讲解,目前没用到闭包,这里就不做讲解了,看了不用也记不住。