ลักษณะแต่ละอย่างแสดงถึงคุณสมบัติที่เข้มงวดมากขึ้นเกี่ยวกับการปิด / ฟังก์ชันซึ่งระบุโดยลายเซ็นของcall_...วิธีการและโดยเฉพาะอย่างยิ่งประเภทของself:
FnOnce( self) เป็นฟังก์ชันที่สามารถเรียกใช้ได้ครั้งเดียว
FnMut( &mut self) เป็นฟังก์ชันที่สามารถเรียกใช้ได้หากมี&mutการเข้าถึงสภาพแวดล้อม
Fn( &self) เป็นฟังก์ชันที่สามารถเรียกใช้ได้หากมีเพียง&การเข้าถึงสภาพแวดล้อมเท่านั้น
การปิด|...| ...จะดำเนินการโดยอัตโนมัติให้มากที่สุดเท่าที่จะทำได้
- การปิดทั้งหมดใช้
FnOnce: การปิดที่ไม่สามารถเรียกได้ครั้งเดียวไม่สมควรได้รับชื่อ โปรดทราบว่าหากการปิดดำเนินการFnOnceเพียงครั้งเดียวสามารถเรียกใช้ได้เพียงครั้งเดียว
- การปิดที่ไม่เคลื่อนออกจากการใช้งานการดักจับ
FnMutทำให้สามารถเรียกได้มากกว่าหนึ่งครั้ง (หากมีการเข้าถึงวัตถุฟังก์ชันโดยไม่ได้กำหนด)
- การปิดที่ไม่ต้องการการเข้าถึงที่ไม่ซ้ำกัน / เปลี่ยนแปลงได้ในการใช้งานการจับภาพ
Fnทำให้สามารถเรียกได้ทุกที่
ข้อ จำกัด เหล่านี้เป็นไปตามโดยตรงจากประเภทselfและ "desugaring" ของการปิดเป็นโครงสร้าง; อธิบายไว้ในบล็อกของฉันโพสต์Finding ปิดใน Rust
สำหรับข้อมูลเกี่ยวกับการปิดดูปิด: ฟังก์ชั่นที่ไม่ระบุชื่อที่สามารถจับสภาพแวดล้อมของพวกเขาในสนิมโปรแกรมภาษา