2014-11-01 29 views
12

में स्थानीय फ़ंक्शन में स्थानीय फ़ंक्शन बनाने के लिए जंग में किसी भी तरह से को से अधिक बार कहा जा सकता है। जिस तरह से मैं क्या चाहते हैं कि अजगर में है:जंग

def method1(): 
    def inner_method1(): 
    print("Hello") 

    inner_method1() 
    inner_method1() 

उत्तर

17

हाँ, आप कार्यों के अंदर कार्यों को परिभाषित कर सकते हैं:

fn method1() { 
    fn inner_method1() { 
     println!("Hello"); 
    } 

    inner_method1(); 
    inner_method1(); 
} 

हालांकि, आतंरिक कार्यों बाहरी गुंजाइश के लिए पहुँच नहीं है। वे केवल सामान्य कार्य हैं जो फ़ंक्शन के बाहर से उपलब्ध नहीं हैं। हालांकि, आप फ़ंक्शन में चर के रूप में चर को पास कर सकते हैं। एक विशेष हस्ताक्षर के साथ एक फ़ंक्शन को परिभाषित करने के लिए जो बाहरी दायरे से चर का उपयोग कर सकता है, आपको बंद करने का उपयोग करना होगा।

+0

@ क्रिस मॉर्गन, इसका इसके साथ कुछ लेना देना नहीं है। –

+2

@AlexanderSupertramp: ऐसा लगता है कि ऐसा करने का कोई कारण नहीं होने पर आप किसी भी टिप्पणी की व्याख्या करने के लिए दृढ़ संकल्प करते हैं। अगर आप ऐसा करना बंद कर देंगे तो मैं इसकी सराहना करता हूं। इस मामले में मैं केवल यह इंगित कर रहा हूं कि आप उन चरों को पार करके बंद करने के उपयोग से बच सकते हैं जो तर्क के रूप में किसी फ़ंक्शन में बंद हो जाएंगे। उसमें कुछ भी गलत नहीं है, है ना? –

+0

@ChrisMorgan, ओह, आओ-मैंने एक सरल बयान दिया जो पूरी तरह से सच है! मेरा प्रश्न स्पष्ट रूप से कहता है - "स्थानीय कार्य" जिसका आपके द्वारा प्रस्तावित किए गए कार्यों से कोई लेना देना नहीं है। –