ruby - 使用 "::"而不是 "module ..."用于 Ruby 命名空间

标签 ruby namespaces

在Ruby 中,编写class Foo::Bar 和编写module Foo 有区别吗?类 Bar 用于命名空间?如果是,是什么?

最佳答案

如果你使用 class Foo::Bar,但是 Foo 模块还没有被定义,一个异常将会被抛出,而 module Foo ;如果尚未定义,类 Bar 方法将定义 Foo

此外,使用 block 格式,您可以在以下范围内定义多个类:

module Foo
  class Bar; end
  class Baz; end
end

关于ruby - 使用 "::"而不是 "module ..."用于 Ruby 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6927566/

相关文章:

ruby - 使用错误容器的serverspec

c++ - 重新实现 QStyledItemDelegate::paint - 如何获取子元素坐标?

ruby-on-rails - rails : Is there a way to make nested resources work automatically with `link_to` ?

c++ - 如何不使用 C 头文件的声明污染全局 namespace ?

c++ 17命名空间,是否可以始终强制进行合格访问?

php - Laravel 5 播种

ruby - 如何修补 RequestId 中间件或为什么 Heroku 不使用标准的 HTTP_X_REQUEST_ID?

ruby-on-rails - 在 rake 任务中存储密码安全吗?

c# - 替换本地 : keyword with a path? 的适当方法是什么

JavaScript : NameSpace of a specific attribute?