在Ruby中,::MyClass/MyModule
作用域运算符是什么?它的用途是什么?
这明确地指的是全局作用域中的MyClass。如果全局作用域中有一个MyClass,但是在SomeModule内部也有一个MyClass,那么从SomeModule内部引用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