gpt4 book ai didi

ruby-on-rails -::ModuleName::ClassName 和 ModuleName::ClassName 有什么区别

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:00 27 4
gpt4 key购买 nike

在 ruby​​ 中,我开始看到一种非常正常的做法,包括引用为::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

会打印出来

Customer within order
Customer global

关于ruby-on-rails -::ModuleName::ClassName 和 ModuleName::ClassName 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9398095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com