2010-08-30 20 views

उत्तर

18

यह स्पष्ट रूप से वैश्विक दायरे में MyClass को संदर्भित करता है। यदि वैश्विक दायरे में MyClass है, लेकिन कुछ मॉड्यूल के अंदर एक MyClass भी है, तो MyClass के अंदर से MyClass का जिक्र करने से मॉड्यूल के अंदर MyClass का संदर्भ होगा, न कि वैश्विक MyClass। कह रहा है :: MyClass स्पष्ट रूप से वैश्विक दायरे में MyClass को संदर्भित करता है।

class MyClass 
    def self.something 
    puts "Global MyClass" 
    end 
end 

module SomeModule 
    class MyClass 
    def self.something 
     puts "SomeModule::MyClass" 
    end 
    end 

    print "From the module: " 
    MyClass.something 

    print "Explicitly using global scope: " 
    ::MyClass.something 
end 

print "From the global scope: " 
MyClass.something 

print "Explicitly using module scope: " 
SomeModule::MyClass.something 
2

"वैश्विक दायरा" का मतलब है कि निरंतर Object वर्ग पर निरंतर परिभाषित किया गया है। तो ::SomeModuleObject::SomeModule

के लिए शॉर्टेंड है
संबंधित मुद्दे