您可以使用splat運算符來解構數組。散列解構
def foo arg1, arg2, arg3
#...Do Stuff...
end
array = ['arg2', 'arg3']
foo('arg1', *array)
但是有沒有一種方法來破壞選項類型善良哈希?
def foo arg1, opts
#...Do Stuff with an opts hash...
end
opts = {hash2: 'bar', hash3: 'baz'}
foo('arg1', hash1: 'foo', *opts)
如果不是原生ruby,Rails添加了類似這樣的東西嗎?
目前我大致是這樣做有
foo('arg1', opts.merge(hash1: 'foo'))
如果你在談論默認選項,那麼是'merg e'是要走的路。 – texasbruce 2013-03-03 22:07:33
是否有任何理由,你顛倒了順序,而不是做'{hash1:'foo'}。merge(opts)'? – sawa 2013-03-03 22:24:57
@sawa不是。只是自然出現了。 – Drew 2013-03-04 01:51:00