Rust 中的函數式語言功能:疊代器與閉包

ch13-00-functional-features.md
commit 1fedfc4b96c2017f64ecfcf41a0a07e2e815f24f

Rust 的設計靈感來源於很多現存的語言和技術。其中一個顯著的影響就是 函數式編程functional programming)。函數式編程風格通常包含將函數作為參數值或其他函數的返回值、將函數賦值給變數以供之後執行等等。

本章我們不會討論函數式編程是或不是什麼的問題,而是展示 Rust 的一些在功能上與其他被認為是函數式語言類似的特性。

更具體的,我們將要涉及:

  • 閉包Closures),一個可以儲存在變數裡的類似函數的結構
  • 疊代器Iterators),一種處理元素序列的方式
  • 如何使用這些功能來改進第十二章的 I/O 項目。
  • 這兩個功能的性能。(劇透警告: 他們的速度超乎你的想像!)

還有其它受函數式風格影響的 Rust 功能,比如模式匹配和枚舉,這些已經在其他章節中講到過了。掌握閉包和疊代器則是編寫符合語言風格的高性能 Rust 代碼的重要一環,所以我們將專門用一整章來講解他們。