2025-05-24 21:12:05 +08:00
|
|
|
|
# 函数式语言特性:迭代器与闭包
|
2017-03-07 23:28:30 +08:00
|
|
|
|
|
2025-05-24 21:12:05 +08:00
|
|
|
|
<!-- https://github.com/rust-lang/book/blob/main/src/ch13-00-functional-features.md -->
|
|
|
|
|
<!-- commit 56ec353290429e6547109e88afea4de027b0f1a9 -->
|
2017-03-07 23:28:30 +08:00
|
|
|
|
|
2025-05-24 21:12:05 +08:00
|
|
|
|
Rust 的设计灵感来源于很多现存的语言和技术。其中一个显著的影响就是**函数式编程**(*functional programming*)。函数式编程风格通常包含将函数作为参数值或其他函数的返回值、将函数赋值给变量以供之后执行等等。
|
2018-12-06 23:31:27 +08:00
|
|
|
|
|
|
|
|
|
本章我们不会讨论函数式编程是或不是什么的问题,而是展示 Rust 的一些在功能上与其他被认为是函数式语言类似的特性。
|
2017-03-08 23:22:11 +08:00
|
|
|
|
|
2025-05-24 21:12:05 +08:00
|
|
|
|
更具体地,我们将要涉及:
|
2017-03-08 23:22:11 +08:00
|
|
|
|
|
2025-05-24 21:12:05 +08:00
|
|
|
|
- **闭包**(*Closures*),一个可以储存在变量里的类似函数的结构
|
|
|
|
|
- **迭代器**(*Iterators*),一种处理元素序列的方式
|
|
|
|
|
- 如何使用闭包和迭代器来改进第十二章的 I/O 项目。
|
|
|
|
|
- 闭包和迭代器的性能。(**剧透警告:** 它们的速度超乎你的想象!)
|
2017-03-08 23:22:11 +08:00
|
|
|
|
|
2023-09-25 22:07:16 +08:00
|
|
|
|
我们已经介绍了其它受函数式风格影响的 Rust 功能,比如模式匹配和枚举,这些已经在其他章节中讲到过了。因为掌握闭包和迭代器是编写符合语言风格的高性能 Rust 代码的重要一环,所以我们将专门用一整章来讲解它们。
|