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