2

以下 2 段代码之间有区别吗?

# 1st snippet
class A
  class B
    # some code here
  end
end

# 2nd snippet
class A::B
  # some code here
end

如果有区别,您能帮我理解区别是什么以及为什么要使用一个版本而不是另一个版本吗?

4

1 回答 1

1

这似乎主要是用于组织代码的语法糖 - 无论哪种方式对您有意义都是“正确”的方式。唯一的例外是,对于第二个片段,如果class A尚未定义,您将收到错误消息。在大多数情况下,这个问题是这个问题的副本但由于您将类嵌套在类中而不是模块中的类,我将继续链接Module docs,它解释了 Ruby 中模块和类之间的区别和可以帮助您在您自己的问题的上下文中解释该 SO 答案。

于 2013-02-27T14:47:33.097 回答