拿出它的大括号

时间:2015-11-17 12:06:25

标签: ruby hash

鉴于bar = {c: 3, d: 4},您如何使用bar以此格式提供代码:

foo(a: 1, b: 2, some_code_here)

表达以下内容?

foo(a: 1, b: 2, c: 3, d: 4)

您可以展开数组:

a = [1, 2, 3]
[*a, 4] # => [1, 2, 3, 4]

你如何用哈希做到这一点?我试过这个:

a = {i: 1, j: 2, k: 3}
{*a, l: 4} # => error

2 个答案:

答案 0 :(得分:4)

使用双splat(**):

a = {i: 1, j: 2, k: 3}
{**a, l: 4} # => {i: 1, j: 2, k: 3, l: 4}

Ruby devs:为什么不使用未使用的常规splat?

答案 1 :(得分:1)

a = {i: 1, j: 2, k: 3}
a.merge(l: 4) #=> {:i=>1, :j=>2, :k=>3, :l=>4}
相关问题