Programming Ruby を始めから読んでいると、今まで知らなかった事がちょこちょこ出てきて面白い。 一番面白かったのは、Ruby では、ハッシュキーが存在しない場合のデフォルト値を変更できる事。 なにも指定しない場合は、ハッシュキーが未定義の場合は、nil が返ってくる。 hash = { } p hash.has_key?(:foo) #=> false puts hash[:foo] #=> nil 空のハッシュを作成する時にデフォルト値を指定すると、未定義のキーに対しては、その値が返ってくる。 hash = Hash.new(0) p hash.has_key?(:foo) #=> false puts hash[:foo] #=> 0 hash[:foo] += 1 p hash.has_key?(:foo) #=> true puts hash[:foo] #=> 1