加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – :: ModuleName :: ClassName和ModuleName :: C

发布时间:2020-12-16 23:08:12 所属栏目:百科 来源:网络整理
导读:在 ruby中,我开始看到一个非常正常的做法,包括模块和mixins引用为:: ModuleName :: ClassName,在过去它几乎只是ModuleName :: ClassName. 我想在这里得到的是对这种做法最近被看到的原因和不同做法的理解. 有什么不同? 有什么好处(如果先前没有回答这个问题
在 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

将打印出来

Customer within order
Customer global

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读