ruby - Ruby 中带有内部类的模块声明

标签 ruby

例如,我有文件 list.rb

module List
 class Base
 #...
 end
end

所以在外部文件中,这个类可以作为 List::Base 访问。

假设我创建了另一个文件 list_base_extension.rb

我能做到:

module List
 class BaseExtension < Base
 #...
 end
end

或者

class BaseExtension < List::Base
end

这是否相等?

或者那么BaseExtension就不会被认为是模块的一部分,而是直接继承自List::Base

最佳答案

不,这不相等。如果你使用

module List
  class BaseExtension < Base
  end
end

您定义了一个名为 List::BaseExtension 的类,它继承自 List::Base。相反,用

class BaseExtension < List::Base
end

您定义了一个名为 BaseExtension 的类,它继承自 List::Base。该类将在 List 的范围之外定义。

关于ruby - Ruby 中带有内部类的模块声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34598081/

相关文章:

ruby-on-rails - Mongoid 中 ActiveRecord#establish_connection 的等价物是什么?

ruby - 使用 Kiba 时是否有明显的方法来减少行数?

windows - 您如何安排在 Windows XP 上运行每日脚本?

使用 Devise 和 (warden) 回调的 Ruby On Rails 身份验证

Ruby - 以随机顺序返回一个数组

ruby-on-rails - Rails CORS - 简单请求 : allowed methods option is ignored

ruby - 相当于 Iconv.conv ("UTF-8//IGNORE",...) 在 Ruby 1.9.X 中?

ruby-on-rails - 如何使用 ruby​​ 在两个新行上拆分文本

ruby-on-rails - 如何在不锁定 MacVim 的情况下在 MacVim 中运行 Ruby 规范和/或测试?

ruby - 如何在 G-WAN 上运行 Sinatra 应用程序?