Ruby 中的模块 module class 与 module module::class

发布于 2024-12-07 14:08:28 字数 256 浏览 0 评论 0原文

之间有什么区别

module MyModule
  module MySubModule
    class MySubModuleClass
      ...
    end
  end
end

Ruby 中和

module MyModule
  class MySubModule::MySubModuleClass
    ...
  end
end

What is the difference between

module MyModule
  module MySubModule
    class MySubModuleClass
      ...
    end
  end
end

and

module MyModule
  class MySubModule::MySubModuleClass
    ...
  end
end

in Ruby?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月静好 2024-12-14 14:08:28

除非“MySubModule”已在其他地方定义,否则第二种情况将不起作用...

第二种情况不是“MySubModule”的正确定义,如果您没有在其他地方定义该 MySubModule,则会导致错误

NameError: uninitialized constant MyModule::MySubModule
    from (irb):2:in `<module:MyModule>'

the second case will not work unless "MySubModule" is already defined elsewhere...

the second case is not a proper definition of "MySubModule" and will cause an error if you didn't define that MySubModule elsewhere

NameError: uninitialized constant MyModule::MySubModule
    from (irb):2:in `<module:MyModule>'
星星的轨迹 2024-12-14 14:08:28

在第二个示例中,您定义一个 class,第一个示例是一个 module,并且您不能使用语法 MySubModule::MySubModuleClass如果 MySubModule 不存在。所以你必须先定义它。

On the second example you are defining a class, in the first is a module, and you can't use the syntax MySubModule::MySubModuleClass if MySubModule does not exist. So you have to have it defined before.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文