[英]Ruby: more idiomatic way of “upserting” an array value in a hash
我有一個人的哈希,每個人都擁有一系列的價值觀。
如果散列中不存在某個人,我想創建一個帶有值的新數組,並將其添加到散列中。 如果它們存在,我想找到相應的數組並將項添加到它。
對於這樣一個簡單的操作(基本上是upsert),這段代碼看起來有點啰嗦。 有沒有更慣用的寫作方式?
people = {}
person_values = people.fetch(name, [])
person_values << item
people[name] = person_values
可以使用在首次訪問元素時執行的代碼塊來構造ruby中的哈希。 ruby中重寫代碼的慣用方法是:
people = Hash.new { |hash, key| hash[key] = [] }
people[name] << item
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.