解决方法
只有模块包含的顺序决定了哪一个被调用.不能同时具有相同名称 – 后者将覆盖前者.
当然,你可以做任何技巧,只是从我的头脑中:
module A def foo :foo_from_A end end module B def foo :foo_from_B end end class C def initialize(from) @from = from end def foo from.instance_method(__method__).bind(self).call end private attr_reader :from end C.new(A).foo #=> :a_from_A C.new(B).foo #=> :a_from_B
但这对现实生活中的用例没有好处:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。