什么::(双冒号)在Ruby中意味着什么?
什么在Ruby中意味着什么? 例如Foo::Bar
。
来自镐 :
当在方法调用中显式指定接收器时,可以使用句点(
.
)或两个冒号(::
:)将其与方法名称分开。 如果方法名称以大写字母开头,则会出现这两种forms之间的唯一区别。 在这种情况下,Ruby将假设receiver::Thing
方法调用实际上是尝试访问接收器中名为Thing
的常量,除非方法调用在括号之间有参数列表。
它被称为范围解析运算符。 基本上是一种在命名空间中引用类的奇特方式。 ActiveRecord是命名空间,Base是类。
它访问给定类或模块中的常量。 例如, ActiveRecord::Base
是在ActiveRecord
模块中定义的常量Base
。