gpt4 book ai didi

ruby - define_method 中的动态方法调用

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:39 27 4
gpt4 key购买 nike

我是 ruby​​ 的新手,但我有很多重复的方法。在尝试 DRY 我的代码时,我想到了如下内容:

class Foobar
def some_method
#
end

def some_method2
#
end

def some_calculation
#
end

[:some_method_test, :some_method2_test].each do |method|
define_method method do
return self.send(method.to_s.chomp "_test") / some_calculation
end
end
end

我的问题是关于 .to_s.comp——是否有另一种方式来编写它并实现我的目标?

最佳答案

是的,你可以从原来的名字开始。

[:some_method, :some_method2].each do |method|
define_method :"#{method}_test" do
return self.send(method) / some_calculation
end
end

请注意,除非您有大量琐碎的方法,否则这种元编程通常没有多大意义。

关于ruby - define_method 中的动态方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7651948/

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