在 Java 中,如果我在常规 if 中使用三元 if 运算符,例如:
if ((x > y - z) ? true : callLongWaitedMethod(many, parameteres)) {
loveTeddyBear();
}
x > y - z
如果确实是真的,它会执行 callLongWaitedMethod吗?我希望不是这样,我可以使用这个漂亮的语句,乍一看有点复杂,但与额外的布尔变量相比更有吸引力:
boolean b = (x > y - z) ? true : callLongWaitedMethod(many, parameteres);
if (b) {
loveTeddyBear();
}
特别是如果我在一个反复迭代的大循环中使用它,所以从性能的角度来看,每次创建布尔值都不会很好,而如果我在循环之外声明布尔值,我可能会因为循环的大尺寸。