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 将被评估为真,那么只有下一个 exp 将在 if() 语句中被评估

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