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