【发布时间】:2010-08-11 09:00:07
【问题描述】:
参加以下课程:
class Automator
def fill_specific_form(fields)
fields.each_pair do |key, value|
puts "Setting '#{key}' to '#{value}'"
end
end
end
a = Automator.new
a.fill_specific_form :first_name => "Mads", :last_name => "Mobæk"
# => Setting 'first_name' to 'Mads'
# => Setting 'last_name' to 'Mobæk'
是否可以在没有哈希的情况下做同样的事情?由于所有参数都是必需的,我想要一个具有以下签名的方法:
fill_specific_form(first_name, last_name)
在我看来,这可以通过让方法体反射和迭代其参数来实现,从而获得相同的结果。
您将如何实现这一点?是否已经存在这种模式/习语?两个明显的好处是 IDE 中的参数信息,并且不必检查是否提供了所有哈希键。
我要避免的是:
puts "Setting first_name to #{first_name}"
puts "Setting last_name to #{last_name}"
# and so on
【问题讨论】:
标签: ruby reflection