在rails项目中,我有类:
class Police::Office
end
现在我在同一名称空间中创建一个Interactor:
class Police::Office::ConstructInteractor
end
1。这是允许的还是会引起名称冲突?
2。什么是Police::Office::ConstructInteractor
?
它是否像以下模块中的类:
module Police::Office
class ConstructInteractor
end
end
或者班上的一个班级?
class Police::Office
class ConstructInteractor
end
end
谢谢
答案 0 :(得分:2)
1。这是允许的吗
当然是允许的。允许类包含常量。 (顺便说一句:你自己尝试一下只需要几秒钟。)
还是会引发姓名冲突?
我不知道这意味着什么,但同样,您可以通过复制和粘贴您发布的代码并运行它来轻松地自行测试。
2。什么是
Police::Office::ConstructInteractor
?它是否像以下模块中的类:
module Police::Office class ConstructInteractor end end
当然不是。您之前将Police::Office
定义为一个类,因此它显然是一个类。
或者班上的一个班级?
class Police::Office class ConstructInteractor end end
是。但请注意,这是不是“类中的类”。这是类中的常量。在Ruby中,类不像在Beta,gBeta,Newspeak或Scala中那样嵌套(甚至不像Java中那样)。常量Police::Office::ConstructInteractor
引用的类与常量Police::Office
引用的类之间没有任何关系。