【发布时间】:2015-10-09 19:09:04
【问题描述】:
我知道双冒号 (::) 基本上是一个命名空间解析运算符。但在这种特殊情况下,我不确定我在哪个范围内工作。这是否意味着我想要来自 ruby 核心的 MyClass 类?有点像 ~ 表示 bash 中的主目录..
【问题讨论】:
-
正确!抱歉重复,但谢谢你的链接:)
我知道双冒号 (::) 基本上是一个命名空间解析运算符。但在这种特殊情况下,我不确定我在哪个范围内工作。这是否意味着我想要来自 ruby 核心的 MyClass 类?有点像 ~ 表示 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 的意思不是“来自 ruby 核心”,而是“来自没有模块”。
【讨论】: