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 )) { … }

とにかく、! 演算子は見つけにくい。なんとかしてほしい。