ruby-on-rails - ruby开发 - ruby快速入门



Ruby中类名之前的双冒号? (1)

在类名之前,我已经在Rails中看到了很多双冒号的用法。

例如:

require ::File.expand_path('../config/environment',  __FILE__)

我知道Module::Class::Constant意味着什么,但是::Class


Answer #1

这意味着您从toplevel命名空间引用常量File 。 这在以下情况下有意义:

class MyClass #1
end

module MyNameSpace
  class MyClass #2
  end

  def foo # Creates an instance of MyClass #1
    ::MyClass.new # If I left out the ::, it would refer to
                  # MyNameSpace::MyClass instead.
  end
end




ruby