坚持代码大战挑战:完成解决方案,使其获取一组键和一个默认值,并返回一个散列,并将所有键设置为默认值。
我的回答导致解析错误:
def solution([:keys, :default_value])
return { :keys => " ", :default_value => " " }
end
我错过了使用 all 将键设置为默认值返回哈希键的操作吗?
答案 0 :(得分:12)
执行以下操作:
def solution(keys,default_val)
Hash[keys.product([default_val])]
end
solution([:key1,:key2],12) # => {:key1=>12, :key2=>12}
答案 1 :(得分:1)
我建议修改你的解决方案:
def solution(keys, default_value)
hash = {}
keys.each do |key|
value = default_value.dup rescue default_value
hash[key] = value
end
hash
end
dup
是解决令人讨厌的情况,其中default_value是一个字符串,然后你可以这样做。:
hash[:foo] << 'bar'
...使用您的版本,这将修改多个值而不是单个值。