我希望能有像 usd_to_eur
和 eur_to_usd
这样的动态方法名。
我有一个 currencies = ['uah','rur','usd','eur']
的列表,希望将它们组合起来。
我尝试使用 define_method
实现,但不确定如何正确实现。
我希望能有像 usd_to_eur
和 eur_to_usd
这样的动态方法名。
我有一个 currencies = ['uah','rur','usd','eur']
的列表,希望将它们组合起来。
我尝试使用 define_method
实现,但不确定如何正确实现。
class MyClass
CURRENCIES = %w|uah rur usd eur|
CURRENCIES.permutation(2).each do |(c1, c2)|
define_method(:"#{c1}_to_#{c2}") do
puts "Hi, I am #{__callee__} method"
end
end
end
现在您已经定义了12种方法。例如:
MyClass.new.eur_to_usd
#⇒ Hi, I am eur_to_usd method