ruby - 在 Ruby 中,模块中定义的类如何知道模块的常量?

标签 ruby module constants hierarchy

我试图了解模块中定义的类如何知道模块的常量。这是我的意思的一个例子:

module Car
  class Wheel
  end

  class Seat
    p Wheel        # Car::Wheel
  end
end

我知道这很明显,但由于 Wheel 不在 Seat 的层次结构中,我不明白它如何访问它。

最佳答案

如果您引用一个类常量,Ruby 将首先在同一个模块中查找它,如果在那里找不到它,然后在根目录中查找。

因此,由于 SeatWheel 都在 Car 模块中,如果您查找 Wheel,它将首先查找 Car::Wheel,然后查找 ::Wheel。由于 Car::Wheel 存在,您将获得该引用。

关于ruby - 在 Ruby 中,模块中定义的类如何知道模块的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855926/

相关文章:

ruby-on-rails - 尝试从 Rails Controller 调用辅助方法时出现 NoMethodError

ruby - Ruby 中的 "and return unless nil"语句

c - module_init 没有显示我想要的 printk

javascript - Node.js:从导出进行内部调用

c++ - C++ 中的常量混淆

ruby - 为什么会有这么多说法?简单的 `assert` 还不够吗?

html - 根据 rails 4 中的页面显示不同的样式表

python - 在一个窗口中执行具有多个屏幕的项目的最佳 Python GUI 模块是什么?

c++ - extern const 数组不链接

C++11: "auto"关键字是否完全检索 cv 限定符?我有矛盾的样本