我有一个方法,其中包含很长的可选参数列表,例如:
def foo(foo = nil, bar = nil, baz = nil, qux = nil)
# no-op
end
我认为调用该方法并将拆分哈希作为参数传递将通过将键与方法参数匹配来将哈希项映射到参数:
params = { bar: 'bar', foo: 'foo' }
foo(*params)
不幸的是,当我在使用拆分哈希调用方法后检查局部变量时,如果传入拆分数组,我得到的正是我所期望的,但这不是我所希望的:
foo == [:bar, 'bar'] # hoped: foo == 'foo'
bar == [:foo, 'foo'] # hoped: bar == 'bar'
我在这里缺少什么?