यहां एक दिलचस्प मामला है जिसे मैं समझा नहीं सकता। ऐसा लगता है कि निजी सेटर्स 'तरह' निजी हैं, लेकिन कभी-कभी इसमें अपवाद भी होते हैं। नियमित रूप से निजी तरीकों निजी setters के लिए अलग तरह से व्यवहार करने लगते हैं:निजी सेटर्स अन्य निजी तरीकों से अलग तरीके से क्यों व्यवहार करते हैं?
class TestClass
def do
self.foo = :bar # fine
self.baz # error
end
private
def foo=(other)
@foo = other
end
def baz
end
end
TestClass.new.do
उपरोक्त कोड, @foo
ठीक सेट एक स्पष्ट self
पर बुलाया जा रहा है के बावजूद। फिर यह #baz
पर कॉल करने में विफल रहता है, क्योंकि #baz
एक निजी विधि है।
इसके साथ क्या चल रहा है?
आम तौर पर मैं 'baz' उपसर्ग' self' का उपयोग किए बिना कहेंगे, और कहा कि इस मामले में काम करना चाहिए। लेकिन मुझे एहसास है कि आपके प्रत्यक्ष प्रश्न का उत्तर नहीं देता है। – moveson