3

如何实现“custom_merge”方法?

h1 = {a: 1, c: 2} 
h2 = {a: 3, b: 5} 

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

h1.merge(h2) # => {:a=>3, :c=>2, :b=>5}

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

h1.custom_merge(h2) # {a: [1, 3], b: 5, c: 2}
4

2 回答 2

6

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

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}
于 2013-07-20T20:11:33.540 回答
0
class Hash
  def custom_merge other
    merge(other){|_, *a| a}
  end
end
于 2013-07-21T01:14:10.267 回答