1

什么情况下File::Stat可以在类名中使用双冒号?它有什么特殊含义吗?

4

3 回答 3

2

它只是意味着另一个类或模块内部的类。

module Foo
  class Bar
  end
end

您不能像那样引用 Bar 类,您必须使用它的完全限定名称,Foo::Bar(其他模块中可能还有其他 Bar 类,因此您必须能够区分它们)。

于 2012-04-22T15:48:10.380 回答
0

双冒号表示模块。很多时候类名可能会发生冲突,因此人们创建了一个新模块。

例如...ActiveRecord::Base

于 2012-04-22T15:50:41.927 回答
0

双冒号用于在类或模块中获取 CONSTANT(所有大写的对象都是常量,例如 VALUE_CONSTANT 和 ClassName)。这是继承自 C++ 命名空间概念的约定。

所以这里的约定列表:

Module/Class::CONSTANT
Module/Class::Class
Module/Class.method
于 2012-04-22T15:52:48.637 回答