ruby中类名之前的:: sign /运算符是什么?

时间:2010-09-08 09:02:03

标签: ruby class namespaces module

在ruby中,::命名空间模块和类。 但我经常在类名的开头看到::如下所示:

#snippet of gollum gem
def page_class
  @page_class ||
    if superclass.respond_to?(:page_class)
      superclass.page_class
    else
      ::Gollum::Page
    end
end

如果它在开始时代表什么?

1 个答案:

答案 0 :(得分:16)

它是针对全局范围而不是本地范围来解决的。

class A
  def self.global? 
    true 
  end
end

module B

  class A
    def self.global?
     false
    end
  end

  def self.a
    puts A.global?
    puts ::A.global?

  end
end

B::a

打印

false
true