2
var b = someObjectThatWillNotBeNull;
var a = getA();

if(a != null) {
    if(a.id == b.id) {
        functionA();
    } else {
        functionB();
    }
} else {
    functionB();
}

私はこの構造に何度も出くわし、常に functionB があるコードを複製する必要があります。少しずさんなようです。これを行うより良い方法はありますか?

4

3 に答える 3

11
if (a != null && a.id == b.id) {
    functionA();
} else {
    functionB();
}

そういうことですか?

于 2012-04-11T17:37:32.543 に答える
5

これは少し簡単です:

if (a == null || a.id != b.id)
    functionB();
else
    functionA();
于 2012-04-11T17:39:12.813 に答える
0

ここでは、最初のexpがtrueと評価され、次のexpのみがif()ステートメントで評価されるため、&&演算子を利用しています。

        if(a != null && a.id==b.id) {
         functionA();
        } 
        else {
        functionB();
        }
于 2012-04-11T17:49:00.957 に答える