这个双冒号是什么?例如Foo::Bar
.
我找到了一个definition:
::
是一元运算符,允许从类或模块之外的任何地方访问类或模块内定义的常量、实例方法和类方法.
如果你可以用::
来expose 任何东西,那么scope(私有的,受保护的)有什么好处?
这个双冒号是什么?例如Foo::Bar
.
我找到了一个definition:
::
是一元运算符,允许从类或模块之外的任何地方访问类或模块内定义的常量、实例方法和类方法.
如果你可以用::
来expose 任何东西,那么scope(私有的,受保护的)有什么好处?
::
基本上是一个名称空间解析运算符.它允许您访问模块中的项,或类中的类级项.例如,假设您有以下设置:
module SomeModule
module InnerModule
class MyClass
CONSTANT = 4
end
end
end
您可以从模块外部访问CONSTANT
,即SomeModule::InnerModule::MyClass::CONSTANT
.
它不会影响类上定义的实例方法,因为您可以使用不同的语法(点.
)访问这些方法.
相关说明:如果要返回顶级名称空间,请执行以下操作:::SomeModule–Benjamin Oakes