我必须写一个这样的方法:
def populate_hash([key1, key2, key3], default_value)
#
end
populate_hash([:apples, :oranges, :melons], 6) # { apples: 6, oranges: 6, melons: 6 }
如果我正在编写一个传入两个独立数组的方法(一个用于键,一个用于值),那将很容易,但我不确定如何处理默认值。
谢谢。
答案 0 :(得分:4)
可能有效的另一种方法是使用Array#product
:
def populate_hash(array, default_value)
Hash[array.product([default_value])]
end
如果您使用的是Ruby 2.1+,您也可以使用Array#to_h
:
def populate_hash(array, default_value)
array.product([default_value]).to_h
end
答案 1 :(得分:1)
我相信代码与你提到的没什么不同。试试这个:
def populate_hash(a, default_value)
result = {}
a.each{|k| result[k] = default_value}
return result
end
我没有添加任何检查来验证a
是否和Array,但这样做很容易。