gpt4 book ai didi

ruby - 你如何在 ruby​​ 中重载动态扩展的方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:54 27 4
gpt4 key购买 nike

我在数组中有一些模块。所有模块都定义了一个名为“process”的方法,我想按顺序调用这些 process 方法中的每一个。我的代码看起来像这样(假设模块都在 Mod 类中定义):

modules.each do |mod|
extend Mod.const_get(mod)
process(data)
end

这在第一次运行时运行良好,但在第一次循环后该方法不会被覆盖。我尝试将 undef process 添加为 each block 中的最后一行,但这没有用。

有什么办法可以做到这一点吗?

最佳答案

模块只能包含在继承链中一次。

还有,你做的事情真的很奇怪,你应该考虑重新设计你的系统。

关于ruby - 你如何在 ruby​​ 中重载动态扩展的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211961/

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