Ruby 2.0 引入了关键字参数,并且**
行为就像*
,但对于关键字参数。它返回带有键/值对的哈希。
对于这段代码:
def foo(a, *b, **c)
[a, b, c]
end
这是一个演示:
> foo 10
=> [10, [], {}]
> foo 10, 20, 30
=> [10, [20, 30], {}]
> foo 10, 20, 30, d: 40, e: 50
=> [10, [20, 30], {:d=>40, :e=>50}]
> foo 10, d: 40, e: 50
=> [10, [], {:d=>40, :e=>50}]