gpt4 book ai didi

Java If 优化

转载 作者:搜寻专家 更新时间:2023-11-01 01:02:08 28 4
gpt4 key购买 nike

我确实有以下声明:

isEnabled = false;
if(foo(arg) && isEnabled) {
....
}

public boolean foo(arg) {
some really long running code
}

交换 if 中的语句是否有意义?

if(isEnabled && foo(arg)) { ... }

还是编译器为我优化?

最佳答案

请注意,如果 foo() 也有 side effects,则这两个表达式的行为不同.

如果它正在操纵程序的状态,那么如果您始终调用它,或者如果您仅将它作为 isEnabled 值的依赖项来调用它,就会产生很大的不同。

例如,考虑:

boolean foo(Object arg) { 
someLocalVariable = arg;
//do some calculation and return an answer
}

如果你总是调用foo(),或者你只在isEnabled打开的情况下调用它,这很重要,导致以下两个表达式彼此完全不同:

if (isEnabled && foo(arg)) { ...}  //local variable changes only if isEnabled==true
if (foo(arg) && isEnabled) { ...} //local variable always changes

关于Java If 优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30504850/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com