第13章 函数式语言特性:迭代器与闭包

介绍闭包与迭代器等受函数式编程启发的 Rust 特性

译文 · 基于 The Rust Programming Language(rustc 1.97.1)

函数式语言特性:迭代器与闭包

原文链接: https://doc.rust-lang.org/stable/book/ch13-00-functional-features.html

  Rust 的设计从许多既有语言与技术中汲取灵感,其中一个重要影响来自函数式编程(functional programming)。函数式风格常常把函数当作值来用:作为参数传入、从其他函数返回、赋给变量以便稍后执行,等等。

  本章不会争论“什么算或不算函数式编程”,而是讨论 Rust 中与许多常被称为函数式语言的特性相似的部分。

  更具体地说,我们将涵盖:

  • 闭包(closure):一种可以存进变量的、类似函数的构造
  • 迭代器(iterator):处理一系列元素的方式
  • 如何用闭包和迭代器改进第 12 章的 I/O 项目
  • 闭包与迭代器的性能(剧透:它们比你以为的更快!)

  我们此前已经讲过一些同样受函数式风格影响的 Rust 特性,例如模式匹配和枚举。掌握闭包和迭代器是写出快速、地道的 Rust 代码的重要一环,因此整章都会围绕它们展开。


13.1 闭包

讲解闭包语法、捕获环境与 Fn、FnMut、FnOnce 特征

13.2 用迭代器处理一系列项

讲解 Iterator 特征、消费适配器与迭代器适配器

13.3 改进我们的 I/O 项目

用迭代器去掉 clone 并简化 search 实现

13.4 循环与迭代器的性能比较

对比 for 循环与迭代器实现的性能,说明零成本抽象

最后修改 August 11, 2026: 更新 (70a5af133)