- 闭包(Closures),一个可以储存在变量里的类似函数的结构
- 迭代器(Iterators),一种处理元素序列的方式
- 如何使用这些功能来改进第十二章的 I/O 项目。
- 这两个功能的性能。(剧透警告: 他们的速度超乎你的想象!)
Closures
一种可以捕获外部变量的的匿名函数
Rust 根据其如何使用环境中变量来推断我们希望如何引用环境
- 所有闭包都能被调用一次,所以所有闭包都实现了FnOnce
- 那些并没有移动被捕获变量的所有权到闭包内的闭包也实现了FnMut
- 而不需要对被捕获的变量进行可变访问的闭包则也实现了Fn
- 显示指定实现FnOnce,在闭包前加上
move
关键字,比如多线程中
闭包和函数的区别: 闭包能捕获外部变量
move关键字:值捕获
闭包的本质:匿名结构休
Fn/FnMut/FnOnce:指的是匿名结构体中,函数self的类型,对应&self/&mut self/self
- 消费适配器(consuming adaptors)
- 迭代器适配器(iterator adaptors)
iter
sum
map
collect
filter
zip