如何为哈希创建自定义"合并"方法?

Ser*_*a6n 2 ruby arrays sorting hashmap

如何实现"custom_merge"方法?

h1 = {a: 1, c: 2} 
h2 = {a: 3, b: 5} 
Run Code Online (Sandbox Code Playgroud)

这是一个标准的"合并"方法实现:

h1.merge(h2) # => {:a=>3, :c=>2, :b=>5}
Run Code Online (Sandbox Code Playgroud)

我想要的"custom_merge"方法应该实现:

h1.custom_merge(h2) # {a: [1, 3], b: 5, c: 2}
Run Code Online (Sandbox Code Playgroud)

Aru*_*hit 5

不需要custom_merge方法.Hash#merge随块提供的Ruby核心将帮助您.

h1 = {a: 1, c: 2} 
h2 = {a: 3, b: 5} 
h3 = h1.merge(h2){|k,o,n| [o,n]}
h3
# => {:a=>[1, 3], :c=>2, :b=>5}
Run Code Online (Sandbox Code Playgroud)