假设存在以下代码:
module Foo def test(x) "Foo #{x}" end end module Bar def test(x) "Bar #{x} " + super end end class C include Foo include Bar end puts C.new.test(2) # => "Bar 2 Foo 2"
我无法访问C类代码,也无法访问模块Foo和Bar.
我想在Foo和Bar之间包含一个模块,这样:
module Between def test(x) "Between " + super end end puts C.new.test(2) # => "Bar 2 Between Foo 2"
这是如何实现的?
解决方法
module Bar; include Between end class C; include Bar end puts C.new.test(2) #=> Bar 2 Between Foo 2
但请注意,在实践中,应避免使用这种无意义的模块杂耍.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。