Closed. This question is opinion-based。它当前不接受答案。












想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

4年前关闭。



Improve this question





似乎是一个愚蠢的问题。我只是想知道哪种更好的编码方式。

选项1:

if(a==null) {
    a=getA();
    return a;
} else {
    return a;
}


选项2:

if(a==null) {
    a=getA();
}
return a;


变量a是一个静态变量,用于缓存getA()并避免多次调用它。

最佳答案

还有一个第三种选择,它甚至更短-使用三元条件运算符:

return a != null ? a : getA();


编辑:我假设a是局部变量,因此如果它是null则不必分配。另一方面,如果它是用作高速缓存的实例变量(以避免多次调用getA()),则需要将getA()的结果分配给a,在这种情况下,我将使用第二个另一种选择,因为它更短,因此更清晰(您仍可以将三元条件运算符与赋值-return a != null ? a : (a = getA());-一起使用,但我发现不太清楚)。

10-08 13:41