本文介绍了Ruby 类名前的双冒号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Rails 中看到很多在类名之前使用双冒号的情况.

I have seen a lot usage of double colons in Rails before class names.

例如:

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

我知道 Module::Class::Constant 是什么意思,但是 ::Class 吗?

I know what Module::Class::Constant means, but ::Class ?

推荐答案

这意味着您正在引用顶级命名空间中的常量 File.这在这样的情况下是有意义的:

It means that you're referring to the constant File from the toplevel namespace. This makes sense in situations like this:

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 类名前的双冒号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-29 15:08
查看更多