ネタ元 → ゆとり
[問題] a ≠ b なら true, さもなくば false を引数として
関数 int f(bool) を呼び、結果を c にセットしなさい。
// [1]
bool arg;
if ( a != b ) {
arg = true;
} else {
arg = false;
}
c = f(arg);
// [2]
if ( a != b ) {
c = f(true);
} else {
c = f(false);
}
// [3]
c = ( a != b ) ? f(true) : f(false);
// [4]
c = f( ( a != b ) ? true: false);
// [5]
c = f( a != b );
可読性って難しいよね。読み手に依存しますもん。
で、僕は迷わず[5]です。
"式 a != b の評価値を関数fに与え、結果をcへ"
って読めるやん。
僕にとって最も可読性に優れているのは[5]なんですわ。
「コードは誰にでもわかるように書きましょう」
それに異論を唱えるつもりはないけども、
"誰にでも"てぇのは
"基本的な言語仕様もあやふやな似非プログラマにも"
を意味しちゃいないと信じたいんだ。
...理想論か?
"大工は釘が打てるべし"が理想論か?
大工は釘が打てるのがアタリマエちゃうか?
釘が打てない大工を想定して図面引かにゃならんのか?
それと同じこっちゃないのか!?
チームは烏合の衆ではないし、烏合の衆であってはならんし、
烏合の衆であることを認めては/許してはならんだろ!?
ましてや数羽の烏のために全員揃って烏合の衆に変じちゃダメだろ!