这个双冒号是什么::
? E.g. Foo::Bar
.
我找到了一个定义 http://marcricblog.blogspot.com/2007/11/ruby-double-colon.html:
The ::
是一个一元运算符,它允许:从类或模块外部的任何位置访问在类或模块内定义的常量、实例方法和类方法。
如果你可以使用范围(私有的,受保护的)有什么好处::
揭露什么?
::
基本上是一个名称空间解析运算符。它允许您访问模块中的项目或类中的类级项目。例如,假设您有这样的设置:
module SomeModule
module InnerModule
class MyClass
CONSTANT = 4
end
end
end
您可以访问CONSTANT
从模块外部作为SomeModule::InnerModule::MyClass::CONSTANT
.
它不会影响类上定义的实例方法,因为您可以使用不同的语法(点.
).
相关说明:如果想返回顶级命名空间,请执行以下操作:::SomeModule –本杰明·奥克斯 https://stackoverflow.com/users/146764/benjamin-oakes
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)