ハッシュの値が存在しないときの値(デフォルト値)を設定する
- ハッシュの値がまだ存在しなかったら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