Jef*_*cel 7 ruby rubygems ruby-on-rails
在ruby中,我开始看到一个非常正常的做法,包括模块和mixins引用为:: ModuleName :: ClassName,在过去它几乎只是ModuleName :: ClassName.
我想在这里得到的是对这种做法最近被看到的原因和不同做法的理解.
有什么不同?
有什么好处(如果先前没有回答这个问题)?
提前感谢您的意见.
如果您将::开头放在开头,那么您指的是全局命名空间,如果不是,则指的是当前的命名空间.
通常,如果您的类/模块中没有具有相同名称的类/模块,则不需要::在开头使用.
class Customer
def to_s
"Customer global"
end
end
class Order
class Customer
def to_s
"Customer within order"
end
end
def initialize
puts Customer.new
puts ::Customer.new
end
end
Order.new
Run Code Online (Sandbox Code Playgroud)
将打印出来
Customer within order
Customer global
Run Code Online (Sandbox Code Playgroud)