[Ruby] nilは比較できるといい?
rubyをやっていて戸惑ってエラーを頻発させてしまったのは、nilに対して<,>,<=,>=などの演算をすると例外がでるということです。私としては黙ってfalseを返すことを期待していたのですが。
もちろんrubyは柔軟な言語なので、基本的なクラスに関しては、黙ってfalseを返すように変更するのは難しくなさそうです。でも、どっちがいいんでしょうね。例外なげるのとfalse返すのと。
Posted by arai at March 9, 2005 06:46 PM
昔のJavaHouseBrewersで「equals の引数に null が来たときの挙動」の議論を思い出しました。この辺?
http://java-house.jp/ml/archive/j-h-b/046131.html
演算子には右辺と左辺をひっくり返しても結果が変わらない事が期待されるので、どっちかがnilの場合は例外が出ることは悪くないと思います。
プログラマ的には、演算子の都合よりもnilかどうか調べる手間が増えることは確かに面倒です。でもnilの場合の挙動はアプリケーションやプログラマの都合によって違うので、はじめから例外以外の動作を用意するというのは大変かもしれません。