我知道双冒号(::)基本上是一个名称空间解析操作符。但在这种特殊情况下,我不确定我在哪个范围内工作。这是否意味着我想要MyClass类从ruby核心?有点像~表示bash中的主目录..
想象下面的代码:
class A
def a
puts 'TOPMOST'
end
end
module B
class A
def a
puts 'NESTED'
end
end
def self.topmost
::A.new.a
end
def self.nested
A.new.a
end
end
B.topmost
将打印"TOPMOST"
, B.nested
将打印"NESTED"
。
所以,::A
的意思不是" from ruby core ",而是" from no module. "