gpt4 book ai didi

ruby - 如何在 2 个其他已包含的模块之间混合 ruby​​ 模块?

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:29 25 4
gpt4 key购买 nike

假设存在以下代码:


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

但是请注意,在实践中,应避免这种无意义的模块杂耍。

关于ruby - 如何在 2 个其他已包含的模块之间混合 ruby​​ 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16252090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com