【发布时间】:2013-03-06 23:46:51
【问题描述】:
我想要一个接受散列和可选关键字参数的方法。我尝试定义这样的方法:
def foo_of_thing_plus_amount(thing, amount: 10)
thing[:foo] + amount
end
当我使用关键字参数调用此方法时,它会按预期工作:
my_thing = {foo: 1, bar: 2}
foo_of_thing_plus_amount(my_thing, amount: 20) # => 21
但是,当我省略关键字参数时,哈希会被吃掉:
foo_of_thing_plus_amount(my_thing) # => ArgumentError: unknown keywords: foo, bar
如何防止这种情况发生?有没有防溅之类的东西?
【问题讨论】:
-
谢谢。至少我现在知道一个解决方法:每次都使用关键字参数。很烦人。
标签: ruby arguments ruby-2.0 keyword-argument