具有以下内容:
a = { k1: 10, k2: 20 }
b = { k1: 14, k2: 10 }
Run Code Online (Sandbox Code Playgroud)
我需要得到:
# Not sure if that's the right approach, but broken down in steps :
# c = { k1: a[k1] + b[k1], k2: a[k2] + b[k2] }
# c = { k1: 10 + 14, k2: 20 + 10 }
c = { k1: 24, k2: 30 }
Run Code Online (Sandbox Code Playgroud)
获得此结果的最合适方法是什么?
a.merge(b) { |_,o,n| o+n }
#=> {:k1=>24, :k2=>30}
Run Code Online (Sandbox Code Playgroud)
这使用Hash#merge的形式,该形式采用该块{ |_,o,n| o+n }
来确定_要合并的两个哈希中都存在的键(块变量)的值。有关块变量o和的解释,请参阅文档n。