Ruby类的语法

OK9*_*999 0 ruby chef-infra

Ruby类的下面声明/定义中遵循的格式/语法是什么?我不明白类名中使用的冒号(:).这表明了什么?

class ::Chef::Recipe
  include ::Opscode::ChefClient::Helpers
end
Run Code Online (Sandbox Code Playgroud)

这是从这里:

我熟悉以下定义Ruby类的方法:

class ClassName
   CONSTANT = Z
  ....methods...

end
Run Code Online (Sandbox Code Playgroud)

而且我知道一个常量被称为ClassName::Z,但上面的声明方式对我来说是新的,我在哪里找到声明像这样的ruby类的文档.

cli*_*ath 6

initial ::表示"即使我们可能在词或模块中有词法,也可以从顶级命名空间定义这个新类".当你在常量名称的开头使用它时,即使你在另一个模块或类范围内,你所引用(或创建)的常量不在该范围内,而是在顶层(这些常量)可以通过印刷列出Object.constants)

请注意,"<"(对于超类)后面的文本可以是返回Class对象的任何表达式(在编译时计算).您甚至可以使用函数返回超类.