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

时间:2010-02-16 22:33:21

标签: ruby syntax operators

::在Ruby中意味着什么?例如。 Foo::Bar

3 个答案:

答案 0 :(得分:22)

From the Pickaxe

  

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

答案 1 :(得分:9)

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

答案 2 :(得分:3)

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