次のようなオプションの引数の長いリストを持つメソッドがあります。
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'
私はここで何が欠けていますか?