मैं अपने आप में Kernel
बढ़ाया और उदाहरण विधि Kernel#abort
की परिभाषा के भीतर, मैं सिंगलटन विधि Kernel.abort
कहा जाता है में एक उदाहरण विधि के भीतर एक सिंगलटन विधि कॉलिंग:एक मॉड्यूल है जो अपने आप फैली
module Kernel
extend self
def abort
puts "Press ENTER to exit..."
gets
Kernel.abort
end
end
abort
जब मैं फोन Kernel#abort
, ऐसा लगता है कि Kernel.abort
विधि परिभाषा के अंदर कॉल मूल Kernel#abort
(Kernel.abort
के रूप में विस्तारित) को संदर्भित करता है।
रूबी कैसे पता है जब मैं Kernel.abort
लिखते हैं, मेरा मतलब है कि मूल abort
विधि, नहीं एक मैं अभी बनाया है? मैं अभी हाल ही में बनाई गई नई abort
विधि को कैसे कॉल करूं?
यदि आप रिकर्सन चाहते हैं, तो 'कर्नेल.बॉर्ट' के बजाय' abort' का उपयोग करें। –
'abort' अंतर्निहित 'स्वयं' के साथ एक कॉल है। 'कर्नेल.बॉर्ट' में 'कर्नेल' स्पष्ट 'स्वयं' है, आप उस ऑब्जेक्ट को निर्दिष्ट करते हैं जिस पर विधि को कॉल किया जाना चाहिए। ओह, और मैंने आपका प्रश्न दोबारा खोल दिया। –
मुझे पूरा यकीन नहीं है कि नाम रिज़ॉल्यूशन यहां कैसे काम करता है, इसलिए मैं कोई जवाब पोस्ट नहीं कर रहा हूं। इस सवाल को पहले से ही इस साइट पर पूछा जाना चाहिए था, हालांकि :) –