ruby - 如何访问 Ruby 中另一个模块内的模块中定义的方法?

标签 ruby methods module include nomethoderror

给定以下示例:

module A
  module B
    def whoa
      puts 'Whoa!'
    end
  end
end

如何访问 whoa 方法?

1.9.3p392 :047 > A.B.whoa
NoMethodError: undefined method `B' for A:Module

1.9.3p392 :048 > A::B.whoa
NoMethodError: undefined method `whoa' for A::B:Module

1.9.3p392 :049 > A::B::whoa
NoMethodError: undefined method `whoa' for A::B:Module

这些方法似乎都不起作用。

最佳答案

假设您不需要类级别的方法,您还可以将模块包含到一个类中,实例化该类的一个对象并调用 whoa:

class C
   include A::B
end

c = C.new
c.whoa
# Whoa!

关于ruby - 如何访问 Ruby 中另一个模块内的模块中定义的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17451527/

相关文章:

javascript - js 或等于运算符相当于 ruby​​ 中的运算符

两种递归方法的Java复杂度

Python 类、实例变量和访问器方法

c++ - VC++ 实验模块不起作用

ruby - QtRuby 使用参数/参数连接信号和槽

ruby - rspec: raise_error 用法来匹配错误信息

intellij-idea - 具有共享内容根的 Kotlin/IntelliJ 模块

Java - 从不同的maven模块读取文件

ruby - Controller 中批量更新的最佳实践

java - 将数组作为参数传递 - 棋盘