Ruby:在哈希中“upserting”数组值的更惯用的方式

时间:2015-06-24 15:25:13

标签: arrays ruby coding-style hashmap upsert

我有一群人,每个人都拥有一系列价值观。

如果散列中不存在某个人,我想创建一个带有值的新数组,并将其添加到散列中。如果它们存在,我想找到相应的数组并将项目添加到它。

对于这样一个简单的操作(基本上是upsert),这段代码看起来有点啰嗦。是否有更惯用的写作方式?

saySomething(Class clazz)

1 个答案:

答案 0 :(得分:7)

ruby​​中的哈希值可以使用在首次访问元素时执行的代码块构建。 ruby中重写代码的惯用方法是:

people = Hash.new { |hash, key| hash[key] = [] }

people[name] << item