如何用如下数组中的键初始化散列?

keys = [ 'a' , 'b' , 'c' ]

所需的哈希值应为:
puts h
# { 'a' => nil , 'b' => nil , 'c' => nil }

最佳答案

这里我们使用Enumerable#each_with_objectHash::[]

 keys = [ 'a' , 'b' , 'c' ]
 Hash[keys.each_with_object(nil).to_a]
 # => {"a"=>nil, "b"=>nil, "c"=>nil}

或使用Array#product
keys = [ 'a' , 'b' , 'c' ]
Hash[keys.product([nil])]
# => {"a"=>nil, "b"=>nil, "c"=>nil}

07-24 09:50
查看更多