ハッシュの値が存在しないときの値(デフォルト値)を設定する

  • ハッシュの値がまだ存在しなかったら0を代入し、あったら数を足し込んでいこうと思います。
h = Hash.new
if not h[:key]
  h[:key] = 0
end
h[:key] += 123
  • Hash#key?メソッドを使うべきかしら。
h = Hash.new
if not h.key? :key
  h[:key] = 0
end
h[:key] += 123
  • ハッシュを作るときにHash.new(0)でデフォルト値0を与えておくと「存在しなかったら」というif文が不要になります。
h = Hash.new(0)
h[:key] += 123
  • 同じように空の配列をデフォルトにすることも。
h = Hash.new([])
h[:key] << :value
  • ビットパターンも。
h = Hash.new(0)
h[:key] |= 0b1011