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

A :: B类名在ruby中的含义是什么?

发布时间:2020-12-17 02:32:56 所属栏目:百科 来源:网络整理
导读:我有一个类Entity,在这个类中我曾经有一个名为Config的内部类. class Entity class Config endend Config类已经变得非常大,所以我决定把它带到自己的文件中.但是,我仍然希望保留命名空间,所以我在Config类中加上一个Entity ::在两个不同的文件中留下两个类,
我有一个类Entity,在这个类中我曾经有一个名为Config的内部类.

class Entity
 class Config
 end
end

Config类已经变得非常大,所以我决定把它带到自己的文件中.但是,我仍然希望保留命名空间,所以我在Config类中加上一个Entity ::在两个不同的文件中留下两个类,就像这样.

#In entity.rb file
 class Entity
   require 'entity_config.rb'
 end

 #In entity_config.rb file
 class Entity::Config
 end

现在我可以使用Entity :: Config.new实例化配置

但是,我不明白namespacing这样的类名的含义.有人可以向我解释一下这里到底发生了什么?

解决方法

当您编写类Something the Something时,您提供的是一个常量的名称,因此使用::运算符提供名称相当于首先打开外部类并以此方式创建内部类. ::运算符只是一种从类或模块外部访问类或模块中的常量的方法.例如这样的事情是完全有效的:

class Outer
  class Inner
  end

  class Inner::EvenMoreInner
  end
end

class Outer::Inner::EvenMoreInner::InnerMost
end

请注意,您不能只编写类Some :: New :: Class :: Hierarchy并自动创建所有包含的类.即Some :: New :: Class必须先存在.这就是为什么我查询你在我对这个问题的评论中写的代码的确切顺序.

(编辑:李大同)

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

    推荐文章
      热点阅读