Functional Language Features: Iterator และ Closure
การออกแบบของ Rust ได้รับแรงบันดาลใจจากภาษาและเทคนิคที่มีอยู่หลายตัว และอิทธิพลที่สำคัญหนึ่งคือ functional programming การ programming ในสไตล์ functional มักรวมการใช้ฟังก์ชันเป็นค่าโดยส่งพวกมันในอาร์กิวเมนต์, return พวกมันจากฟังก์ชันอื่น, assign พวกมันให้ตัวแปรเพื่อ execute ภายหลัง และอื่น ๆ
ในบทนี้ เราจะไม่ถกเถียงประเด็นว่า functional programming คืออะไรหรือ ไม่ใช่ แต่จะพูดถึงฟีเจอร์บางอย่างของ Rust ที่คล้ายกับฟีเจอร์ในหลาย ภาษาที่มักถูกเรียกว่า functional
เจาะจงมากขึ้น เราจะครอบคลุม:
- Closure โครงสร้างคล้ายฟังก์ชันที่คุณเก็บในตัวแปรได้
- Iterator วิธีในการประมวลผลชุดของ element
- วิธีใช้ closure และ iterator เพื่อปรับปรุงโปรเจกต์ I/O ในบทที่ 12
- Performance ของ closure และ iterator (spoiler alert — พวกมันเร็วกว่า ที่คุณคิด!)
เราครอบคลุมฟีเจอร์ Rust อื่นบางอย่างไปแล้ว เช่น pattern matching และ enum ที่ได้รับอิทธิพลจากสไตล์ functional ด้วย เพราะการเก่ง closure และ iterator เป็นส่วนสำคัญในการเขียนโค้ด Rust ที่เร็วและ idiomatic เราจะ อุทิศบททั้งบทนี้ให้พวกมัน