【发布时间】:2013-02-27 14:28:27
【问题描述】:
下面2个sn-ps的代码有区别吗?
# 1st snippet
class A
class B
# some code here
end
end
# 2nd snippet
class A::B
# some code here
end
如果有区别,您能帮我了解区别是什么以及为什么要使用一个版本而不是另一个版本吗?
【问题讨论】:
标签: ruby namespaces constants
下面2个sn-ps的代码有区别吗?
# 1st snippet
class A
class B
# some code here
end
end
# 2nd snippet
class A::B
# some code here
end
如果有区别,您能帮我了解区别是什么以及为什么要使用一个版本而不是另一个版本吗?
【问题讨论】:
标签: ruby namespaces constants
这似乎主要是用于组织代码的语法糖 - 无论哪种方式对您有意义都是“正确”的方式。唯一的例外是,对于第二个 sn-p,如果尚未定义 class A,您将收到错误消息。在大多数情况下,这个问题与this one 重复,但由于您在类中嵌套类而不是模块中的类,我将继续链接Module docs,它解释了模块和类之间的区别Ruby 并且可以帮助您在您自己的问题的上下文中解释那个 SO 答案。
【讨论】: