什么是Ruby的双冒号“::”?

这个双冒号是什么?例如,Foo::Bar

我找到了一个定义:

::是一个一元运算符,允许从类或模块之外的任何位置访问类或模块中定义的:常量、实例方法和类方法

如果您可以使用公开任何内容,那么作用域(私有、受保护)有什么好处

基本上是一个名称空间解析操作符。它允许您访问模块中的项,或类中的类级项。例如,假设您有以下设置:

模块SomeModule
模块内部模块
类MyClass
常数=4
终止
终止
终止

您可以作为SomeModule::InnerModule::MyClass::CONSTANT从模块外部访问CONSTANT

它不影响类上定义的实例方法,因为您可以使用不同的语法(点)访问这些实例方法

相关说明:如果要返回顶级名称空间,请执行以下操作:::SomeModule–Benjamin Oakes

发表评论