短路评估中评估条件的顺序是什么
What order are conditions evaluated in short circuit evaluation
所以我有 3 个 if 语句条件,我想在检查第三个条件之前确保前两个条件为真。这里有一些伪代码演示了我的意思:
if (A && B && C) {
doSomething
}
是否等同于:
if (A && B) {
if (C) {
doSomething
}
}
或者我们可以不依赖短路评估中的条件排序吗?
提前致谢!
是的,短路遵循顺序并且只会在发现失败之前进行评估(因此当它知道无论未来的检查如何评估都不可能再成功时会采取捷径)。
如果您需要所有 3 个都为真才能执行代码,那么两者都符合您的目的。
从字面上看,该语句读取如果 A 和 B 和 C 都为真,则执行该代码。但是,如果您想在 A、B 为真而 C 为假的情况下执行某些操作,则需要使用第二段代码并添加 else 语句
所以我有 3 个 if 语句条件,我想在检查第三个条件之前确保前两个条件为真。这里有一些伪代码演示了我的意思:
if (A && B && C) {
doSomething
}
是否等同于:
if (A && B) {
if (C) {
doSomething
}
}
或者我们可以不依赖短路评估中的条件排序吗?
提前致谢!
是的,短路遵循顺序并且只会在发现失败之前进行评估(因此当它知道无论未来的检查如何评估都不可能再成功时会采取捷径)。
如果您需要所有 3 个都为真才能执行代码,那么两者都符合您的目的。 从字面上看,该语句读取如果 A 和 B 和 C 都为真,则执行该代码。但是,如果您想在 A、B 为真而 C 为假的情况下执行某些操作,则需要使用第二段代码并添加 else 语句