函式語言功能:疊代器與閉包

Rust 的設計靈感啟發自許多現有的語言與技術,其中一個影響十分顯著的就是函式程式設計(functional programming)。以函式風格的程式設計通常包含將函式視為數值並作為引數傳遞、將它們從其他函式回傳、將它們賦值給變數以便之後使用,以及更多。

在本章節中,我們不會討論哪些才是屬於函式程式設計或哪些不是,而是介紹一些 Rust 中類似於許多語言常視為函式語言特色的功能。

更明確來說,我們會涵蓋:

  • 閉包(Closures):類似函式的結構並可以賦值給變數
  • 疊代器(Iterators):遍歷一系列元素的方法
  • 如何用這兩種功能來改善第十二章的 I/O 專案
  • 這兩個功能的效能(先偷偷跟你說:它們比你想像的還要快!)

其他 Rust 已經在其他章節提到的功能像是模式配對與枚舉也都有被函式風格所影響。掌握閉包與疊代器是寫出符合語言風格與高效 Rust 程式碼中重要的一環,所以我們將用一章來介紹它們。