एक रूबी वर्ग परिभाषा के भीतर, निम्न परिदृश्यों में निजी कीवर्ड का स्कोप क्या है? या bar_public_2 पर भी?स्कोप निजी, संरक्षित, और सार्वजनिक
5
A
उत्तर
8
आपके मामले में bar_private
और bar_public_2
निजी हैं।
ऐसा इसलिए है क्योंकि दोनों विधियां private
कीवर्ड के "दायरे में" हैं।
> f = Foo.new
#<Foo:0xf1c770>
> Foo.new.bar_private
NoMethodError: private method 'bar_private' called for #<Foo:0xf1c770>
> Foo.new.bar_public_2
NoMethodError: private method 'bar_public_2' called for #<Foo:0xf1c770>
किसी भी तरह से, आप सवाल का जवाब देने का सबसे अच्छा तरीका तो नहीं बल्कि उपयोग की तुलना में आईआरबी खोलने के लिए और ;-) इसे आज़माने
4
आप पाते हैं यह अजीब लगता है कि private
दोनों bar_private
और bar_public_2
प्रभावित कर रहा है, तो करने के लिए, है private
, bar_private
को परिभाषित करने के बाद private :bar_private
का उपयोग करें।
+1 "बस कोशिश करें!" * = 0) –
@ एडी: "बस कोशिश करें" आकस्मिक और अनिर्दिष्ट व्यवहार में उलझने का एक शानदार तरीका है। प्रयोग के माध्यम से प्रोग्रामिंग आम तौर पर एक बुरा विचार है। –
@mu '% s/प्रोग्रामिंग/डिजाइनिंग '- प्रोग्रामिंग * सभी * प्रयोग के बारे में है। – Jeremy