【发布时间】:2014-01-31 04:30:14
【问题描述】:
陷入代码大战挑战:完成解决方案,使其接受一个键数组和一个默认值,并返回一个所有键都设置为默认值的哈希。
我的回答导致解析错误:
def solution([:keys, :default_value])
return { :keys => " ", :default_value => " " }
end
我是否遗漏了返回哈希键并将 所有 键设置为默认值的内容?
【问题讨论】:
-
虽然我更喜欢 Arup 的解决方案,但“初始化集合-添加到它-返回它”模式由 Ruby 中的
Enumerable#inject处理:keys.inject({}) { |h, k| h.merge({k => default_val}) }或keys.inject({}) { |h, k| h[k] = default_val ; h }。 -
@Michael,要摆脱块末尾难看的
h:keys.each_with_object({}) { |k, h| h[k] = default_val }。 -
用难看的方法名代替?我宁愿不要。