Hash#fetch2010/02/04

例外が起きるか否か

んー、Hash#[] が例外を投げるかどうかは、その言語のデザイナが「どちらのユースケースが頻出パターンであるか」を判断した結果だと思います。

Rubyにも Hash#fetch という長いメソッドが用意されていて、このメソッドのデフォルト動作はキーが存在しなければIndexError例外が発生する Hash#[] です。

これは、Matzが、例外が起きて欲しい場合とそうでない場合を量りにかけて、後者の方が多いと判断した結果じゃないのかなあ。