やっぱり条件演算子を使いたい
以前のような記事を書いた底辺プログラマーの私ですが、それでも条件演算子を使いたいタイミングがあります。
条件演算子を使いこなせない - 涼の成長記録
これは、完全に私の勝手な美学以外の何者でもないのですが、こういう文が気持ち悪いのです。
// 大きかった数値を返すだけのルーチン。 int big(int a, int b) { if (a > b) { return a; } else { return b; } // ここにreturnがないと気持ち悪い。 }
「わかんねーよ!」という声が聞こえてきそうですが、何故か気持ち悪いのです。ifとelseで確実にreturnを通ることは分かるのですが、それでも一番最後はreturn文であってほしい。じゃあ、こう書くのか。
// 大きかった数値を返すだけのルーチン。 int big(int a, int b) { if (a > b) { return a; } // (a <= b)の条件で絶対来るからelseいらないじゃん! return b; }
いや、これも気持ち悪いのです。何となくでしかないので説明できないのですが、(a > b)であれば a , そうでなければ b と明確に書かれていないからです。A型の几帳面さが、ここで出てくるというのか!
そんな謎の美的センスを持つ私が辿り着く先は、やはり条件演算子なのです。条件演算子かわいいよ、条件演算子。
// 大きかった数値を返すだけのルーチン。 int big(int a, int b) { return (a > b) ? a : b; }
こんな簡単なルーチンなので、明らかにこの方が可読性が高く見えるのですが、実際現場で組むようなコードは、少し複雑さを増します。下記程度でも、既に醜いです。多分if, elseの方がパッと見の理解スピードは速いと思います。
return (itr != m_SampleMap.end()) ? itr->second : "Not found.";
しかし俺は条件演算子を使いたい!
それだけ叫びたいがための記事でした。いやー、プログラミングって楽しいですね。
ではでは。