2021-02-26 Ruby Hash のデフォルト値を設定する
Rubyでハッシュのデフォルト値を配列にする
# ハッシュのデフォルト値を配列に
list = Hash.new{ |hash, key| hash[key] = []}
# キーの配列に要素を追加
list[:even] << 2
list[:odd] << 3
# 結果を見る
p list #=> {:even=>[2], :odd=>[3]}
ハッシュのデフォルト値をゼロで初期化
h = Hash.new { |hash, key| hash[key] = 0 }
h[:a] += 1 #=> 1
h[:a] += 1 #=> 2
h #=> {:a=>2}
see also. Enumerable#tally (Ruby 3.4 リファレンスマニュアル)
まとめ
Hash.new{ |hash, key| hash[key] = []}
で初期値を配列にできる。