这段代码是否有一个通用的 Ruby 习惯用法:
if hashmap.has_key?(key)
hashmap[key] += 1
else
hashmap[key] = 1
end
感觉这里可能需要一个高阶函数来帮助。我希望有像以下的东西:
hashmap[key].insertOrUpdate { 1 }, {|value| value += 1}
编辑:虽然@Santhosh的答案很酷并且适用于我的特定示例,但我更关心一般情况。我认为@sawa的答案提供了最大的灵活性,因为传递的代码块允许像哈希等复杂逻辑...
hashmap[key].to_i + 1
,因为nil.to_i
是零。 - mu is too shortnil.to_a
和nil.to_h
同样有用,可以将nil
转换为“空”对象。 - mu is too short