加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 01:47:19 所属栏目:百科 来源:网络整理
导读:给出以下示例: module A module B def whoa puts 'Whoa!' end endend 如何访问whoa方法? 1.9.3p392 :047 A.B.whoaNoMethodError: undefined method `B' for A:Module1.9.3p392 :048 A::B.whoaNoMethodError: undefined method `whoa' for A::B:Module1.9.3
给出以下示例:

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!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读