blocks and variable scope in Ruby -
Russ ऑलसेन के अलौकिक रूबी के p.226 से: सभी चर जो कि करना या { से पहले दिखाई दे रहे हैं, अभी भी एक कोड ब्लॉक के अंदर दिखाई दे रहे हैं अपने लिए यह देखने के लिए, मैं निम्नलिखित कोड चलाया आउटपुट, मेरे आश्चर्य के लिए, विधि से: 1 का मान 1 ब्लॉक से: मान ए है क्यों इसे @ ब्लॉक में नहीं बना रही है? ठीक पहले इसे दूसरे तरीके से स्थापित करने के लिए: एक ब्लॉक उस क्षेत्र पर बंद होता है जहां यह बनाया < / em>, नहीं, जहां यह बुलाया जाता है ।
वर्ग Foo def आरंभिक एए = 1 एफ़ डीईएफ़ show_a डालता है "विधि से: एक का मान # {@ a}" उपज अंत अंत बार = Foo.new bar.show_a {ब्लॉक से "डालता है: एक का मान # है {@ ए}" }
bar.show_a {डालता है" ब्लॉक से: एक का मान # {@ a} "} है, एक
डालता है <ए / <> कोड में चिपकाएं। यह शून्य भी होगा आप पाएंगे कि उस क्षेत्र में कोई भी
@ ए मौजूद नहीं है, क्योंकि
@ ए फ़ू वर्ग के एक उदाहरण चर है। तो ब्लॉक ईमानदारी से आसपास की गुंजाइश में
@ ए की कमी को दर्शाता है।
Comments
Post a Comment