水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > 2009年のえび日記 > 2009年6月 > 2009年6月2日(火曜日)

2009年6月2日(火曜日)

boolをStringに変換して長さを見てtrueと判断

公開: 2024年12月21日23時28分頃

これはすごい。

bool値をStringに変換してその文字の長さが4のときtrueと判断していた。

#さっき見た

以上、こんなコードは見たくない。 - hatest - はてなハイク より

こんな感じのコードなのでしょうか。

boolean foo = bar.check();
if(foo.toString().length == 4){
    // 処理
}

もちろん、本来ならこれで良いはず。

boolean foo = bar.check();
if(foo){
    // 処理
}

ものすごい発想ですが、これでも正しく動作するのが面白いですね。効率は悪いですが、それも誤差の範囲でしょう。

想像ですが、発想の経緯はこんな感じなのかしら?

  1. if(……) には必ず == や > などを含む条件式を書かなければならないと思っていて、if(foo) が発想できなかった
  2. bool値リテラルの書き方を知らず、if(foo == true) も発想できなかった
  3. 文字列リテラルは知っていたので if(foo == "true") と書いてみたが、型が違うのでうまく行かなかった
  4. 型を揃えるべく if(foo.toString() == "true") と書いてみたが、Javaだったのでうまく行かなかった

    ※Javaでは == での比較は同一インスタンスかどうかを調べるので、文字列比較は equals() メソッドを使うのが定石。

  5. そこで if(foo.toString().length == 4) と書いたら動いた

まあしかし、私は私でこんなのを書いたことがありますし……。

if(foo){
    return true;
} else {
    return false;
}

あんまり他人のことは言えませんね。

関連する話題: プログラミング

最近の日記

関わった本など