2011-06-30 23 views

उत्तर

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> 

किसी भी तरह से, आप सवाल का जवाब देने का सबसे अच्छा तरीका तो नहीं बल्कि उपयोग की तुलना में आईआरबी खोलने के लिए और ;-) इसे आज़माने

+3

+1 "बस कोशिश करें!" * = 0) –

+0

@ एडी: "बस कोशिश करें" आकस्मिक और अनिर्दिष्ट व्यवहार में उलझने का एक शानदार तरीका है। प्रयोग के माध्यम से प्रोग्रामिंग आम तौर पर एक बुरा विचार है। –

+2

@mu '% s/प्रोग्रामिंग/डिजाइनिंग '- प्रोग्रामिंग * सभी * प्रयोग के बारे में है। – Jeremy

4

आप पाते हैं यह अजीब लगता है कि private दोनों bar_private और bar_public_2 प्रभावित कर रहा है, तो करने के लिए, है private, bar_private को परिभाषित करने के बाद private :bar_private का उपयोग करें।

संबंधित मुद्दे