लक्षण प्रत्येक को बंद करने / कार्यों के बारे में अधिक से अधिक प्रतिबंधात्मक गुणों का प्रतिनिधित्व करते हैं, उनकी call_...पद्धति के हस्ताक्षरों से संकेत मिलता है , और विशेष रूप से इसके प्रकार self:
FnOnce( self) ऐसे कार्य हैं जिन्हें एक बार बुलाया जा सकता है
FnMut( &mut self) वे कार्य हैं जिन्हें कहा जा सकता है यदि &mutउनके पर्यावरण तक पहुंच हो
Fn( &self) ऐसे कार्य हैं जिन्हें कहा जा सकता है यदि उनके पास केवल &अपने पर्यावरण तक पहुंच हो
एक बंद |...| ...स्वचालित रूप से उन में से कई को लागू करेगा जितना यह कर सकता है।
- सभी क्लोजर लागू होते हैं
FnOnce: एक क्लोजर जिसे एक बार नहीं बुलाया जा सकता है वह नाम के लायक नहीं है। ध्यान दें कि यदि एक बंद केवल लागू होता है FnOnce, तो इसे केवल एक बार ही बुलाया जा सकता है।
- क्लोज़र जो अपनी कैद से बाहर नहीं निकलते हैं
FnMut, उन्हें लागू करने की अनुमति देता है, ताकि उन्हें एक से अधिक बार कॉल किया जा सके (यदि फ़ंक्शन ऑब्जेक्ट पर कोई पहुंच नहीं है)।
- क्लोज़र जिन्हें अपनी कैप्चर कार्यान्वयन के लिए अद्वितीय / परस्पर उपयोग की आवश्यकता नहीं है
Fn, उन्हें हर जगह अनिवार्य रूप से बुलाया जा सकता है।
ये प्रतिबंध सीधे selfऔर संरचना में बंद होने के "उतरने" के प्रकार से अनुसरण करते हैं; रस्ट में मेरे ब्लॉग पोस्ट फाइंडिंग क्लोजर में वर्णित है ।
क्लोजर के बारे में जानकारी के लिए, क्लोज़र: बेनामी फ़ंक्शंस देखें, जो रस्ट प्रोग्रामिंग लैंग्वेज में उनके पर्यावरण पर कब्जा कर सकते हैं ।