【问题标题】:What is the :: sign/operator before the class name in ruby?ruby 中类名前的 :: 符号/运算符是什么?
【发布时间】:2010-09-08 09:02:02
【问题描述】:

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

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

如果是开头的 :: 代表什么?

【问题讨论】:

标签: ruby class namespaces module


【解决方案1】:

这是针对全局范围而不是本地范围进行解析。

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

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 2011-03-20
    • 2021-12-04
    • 2011-03-02
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    相关资源
    最近更新 更多