我看到了这行代码。
class ClassName < ::TestUnit::Test::Etc
当嵌套常量标记遵循继承符号时,它是什么意思,如下所示:< ::SuperClass
?
此外,是否有::
符号的技术名称?
答案 0 :(得分:4)
::
是范围解析运算符。这意味着“在此模块中查找以下常量名称”。如果省略该模块,则假定为Object
。因此,::Foo
基本上与Object::Foo
相同,当然封闭模块可以定义其自己的 Object
常量,在这种情况下,第二种形式会显示 Foo
内的而不是您期望的那个Object
。
请注意,::
也可以用作消息发送操作符,即与.
相同:foo::bar
与{{1}相同}}。但是,这种用法高度不鼓励。