Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ฟีเจอร์ภาษาเชิงฟังก์ชัน: ตัวซ้ำและโคลเชอร์ (Functional Language Features: Iterators and Closures)

การออกแบบภาษา Rust ได้รับแรงบันดาลใจจากภาษาและเทคนิคที่มีอยู่มากมาย และหนึ่งในอิทธิพลที่สำคัญคือ การเขียนโปรแกรมเชิงฟังก์ชัน (functional programming) การเขียนโปรแกรมในสไตล์ฟังก์ชันนัลมักรวมถึงการใช้ฟังก์ชันในฐานะค่า เช่น การส่งฟังก์ชันเป็นอาร์กิวเมนต์ การคืนค่าฟังก์ชันจากฟังก์ชันอื่น การมอบหมายฟังก์ชันให้แก่ตัวแปรเพื่อนำไปประมวลผลในภายหลัง เป็นต้น

ในบทนี้ เราจะไม่ถกเถียงกันในประเด็นที่ว่าการเขียนโปรแกรมเชิงฟังก์ชันคืออะไรหรือไม่ใช่อะไร แต่เราจะหารือเกี่ยวกับฟีเจอร์บางประการของ Rust ที่มีความคล้ายคลึงกับฟีเจอร์ในหลายภาษาซึ่งมักถูกอ้างถึงว่าเป็นแบบฟังก์ชันนัล

โดยเฉพาะอย่างยิ่ง เราจะครอบคลุมเรื่อง:

  • โคลเชอร์ (Closures) โครงสร้างที่เหมือนฟังก์ชันซึ่งคุณสามารถจัดเก็บไว้ในตัวแปรได้
  • ตัวซ้ำ (Iterators) วิธีการประมวลผลชุดของสมาชิก
  • วิธีใช้โคลเชอร์และตัวซ้ำเพื่อปรับปรุงโปรเจกต์ I/O ในบทที่ 12
  • ประสิทธิภาพของโคลเชอร์และตัวซ้ำ (สปอยล์: พวกมันทำงานเร็วกว่าที่คุณคิด!)

เราได้ครอบคลุมฟีเจอร์อื่นๆ ของ Rust ไปบ้างแล้ว เช่น การจับคู่รูปแบบ (pattern matching) และ enums ซึ่งได้รับอิทธิพลจากสไตล์ฟังก์ชันนัลด้วยเช่นกัน เนื่องจากเก่งกาจในเรื่องโคลเชอร์และตัวซ้ำเป็นส่วนสำคัญในการเขียนโค้ด Rust ที่รวดเร็วและมีความเป็นธรรมชาติ (idiomatic) เราจึงมอบทั้งบทนี้ให้แก่พวกมัน