IsSomething == true
同僚は次のようなコードスタイルらしい。
if( obj.IsExists == true ) { … }
私としては、”obj is exists” is true ? というふうに見えるので、冗長だなあと思う。もし、こんなふうに書いてあったら理解に苦しむ。
if( obj.IsExists != false) { … }
こう書けばよろしい。
if( obj.IsExists ) { … }
が、自分のコードスタイルには、否定時に欠点があることも自覚している。
if( !obj.IsExists ) { … }
これが、肯定の場合と比べて僅かな差異しか持たないことは明白だ。元気なときならいざ知らず、疲れているときのコーディングはこういうミスに気がつけなくなる。いうまでもなく、プログラマは大抵疲れている。
私のあらゆる言語への願いは、 単項 not 演算子を導入してもらうことだ。こう書けたらなんと読みやすいだろう。
if( not obj.IsExists ) { … }
気持ちを分かっていただくために、色づけもしてみた。
ifnot/unlessステートメントも望ましい。これは is 演算子との組み合わせで特に有用である。
ifnot( obj.IsExists ) { … }
ifnot( obj is IOException ) { … }
//written now; if( !( obj is IOException )) { … }
とにかく、! 演算子は見つけにくい。なんとかしてほしい。