रूबी में, निरंतर लुकअप घोंसले से प्रभावित होता है और विधियां उनके घोंसले को बरकरार रखती हैं।रूबी में मुझे विधि का घोंसला कैसे मिल सकता है?
उदाहरण के लिए, अगर मैं इन मॉड्यूल है:
module Foo
module ::A
Module.nesting #=> [A, Foo]
def Foo.a
X
end
end
end
Foo.a #=> 1
और एक विधि Foo.b
[Foo, B]
की नेस्टिंग है कि:
module A
X = 1
end
module B
X = 2
end
module Foo
end
मैं एक विधि Foo.a
[A, Foo]
की नेस्टिंग है कि परिभाषित कर सकते हैं :
module B
module ::Foo
Module.nesting #=> [Foo, B]
def Foo.b
X
end
end
end
Foo.b #=> 2
Foo::X = 3
Foo.a #=> 1 <- still resolves to A::X
Foo.b #=> 3 <- now resolves to Foo::X
लेकिन मैं एक दिया विधि के घोंसले कैसे तय करते हैं: अगर मैं Foo::X
परिभाषितअंतर स्पष्ट हो जाता है?
ईमानदार होने के लिए, मुझे यह भी यकीन नहीं है कि क्यों 'Foo.a' और' Foo.b' परिभाषित और मुख्य में उपलब्ध हैं। –
@EricDuminil मैं ':: Foo' के कारण कहूंगा, यह शीर्ष-स्तर स्थिरांक को संदर्भित करता है। – Stefan
यह नहीं पता था कि शीर्ष स्तर के मॉड्यूल दूसरों में घोंसला जा सकता है, वाह। – akuhn