什么::(双冒号)在Ruby中意味着什么?

eri*_*ric 20 ruby syntax operators

::Ruby 中的意思是什么?例如Foo::Bar.

Mar*_*ers 22

来自镐:

当在方法调用中显式指定接收器时,可以使用period(.)或两个冒号(::)将其与方法名称分开.如果方法名称以大写字母开头,则会出现这两种形式之间的唯一区别.在这种情况下,Ruby将假定receiver::Thing方法调用实际上是尝试访问Thing接收器中调用的常量,除非方法调用在括号之间有参数列表.


Ach*_*les 9

它被称为范围解析运算符.基本上是一种在命名空间中引用类的奇特方式.ActiveRecord是命名空间,Base是类.


sep*_*p2k 3

它访问给定类或模块中的常量。Eg是模块中定义的ActiveRecord::Base常量。BaseActiveRecord