5

私の IDE (IntelliJ IDEA) は、この if ステートメントの中かっこを削除するオプションがあることを教えてくれます。

if (objectIsOfTypeFoo) {
    if (objectOfTypeFooIsShared) {
        // do something with Object of type Foo knowing that it's shared...
    } else {
        // do something with Object of type Foo knowing that it's not shared...
    }
} else if (objectIsOfTypeBar) {
    ...
}

なるために:

if (objectIsOfTypeFoo) if (objectOfTypeFooIsShared) {
    // do something with Object of type Foo knowing that it's shared...
} else {
    // do something with Object of type Foo knowing that it's not shared...
} else if (objectIsOfTypeBar) {
    ...
}

私はこれがどのように理にかなっているかを理解しており、インデントを失いたくなるかもしれませんが、私の懸念は読みやすさが損なわれる可能性があることです. 後者の方がきれいに見えますが、節約されたスペースは潜在的な混乱に値しますか?

2 つのパフォーマンスの違いは、仮にあったとしても些細なことだと思います。

フォローアップの質問として: 'if (条件)' が 1 行に収まる数に制限はありますか? または、どの時点で多くなりすぎますか?

4

4 に答える 4

8

私はあなたがすでに持っている方法に投票しています。

私もこれを使用しません:

if(foo)
   return bar;

代わりにこれが好きです:

if(foo){
   return bar;
}

「プログラムは人間が読めるように書かれていなければならず、機械が実行するのは偶然に過ぎない」

于 2013-06-13T00:07:21.467 に答える
4

常にブレースを使用してください。ある日、if ブロックまたは else ブロックに 2 番目のステートメントを入れたいと思うようになるでしょう。しかし、あなたは本当にinstanceofチェックを行っていますか?代わりに、プログラムを作り直して、それらを多態的なオブジェクトの動作に変えることはできますか?

于 2013-06-13T00:07:58.287 に答える
2

私は最初のものを好むでしょう。1行に複数のifがあるビットは読めないと思います。

申し訳ありませんが、締め切りに投票します。答えのない議論になります。

于 2013-06-13T00:04:14.307 に答える