我对ruby还不太熟悉,但在这种情况下,我有很多重复的方法。在试图干掉我的代码时,我想出了如下的方法:
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
我的问题是关于。对美国公司-有没有其他的方式来写这个和实现我的目标?
最佳答案
是的,你可以从原来的名字开始。
[: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/