是否有任何合理的场景,程序员可能希望避免对布尔表达式进行短路评估?
is there any plausible scenario in which a programmer might wish to avoid shortcircuit evaluation of a Boolean expression?
short circuit evaluation可以缩短编译时间,所以才知道C,C++都是这么用的。但是有没有短路求值破坏代码的情况呢?
短路不会缩短代码的编译时间。 (至少任何有意义的数量)
它可能会缩短运行时间,但这不是它的预期目的。
短路的目的是为了检查特定条件做最少的工作。
例如:
当使用 &&
(与单个 &
相对)时,如果左边的操作数为假,则不会计算右边的操作数。这是由于 logical and
操作的性质:如果至少一个操作数为假,则整个表达式为假。
从技术上讲,如果条件提前失败,它会缩短运行时间,但节省的运行时间取决于每个操作数中的表达式。
无论如何,使用 &&
是不正确的,因为它比 &
"faster"。您应该在适当的时候使用其中之一。
&
用于位运算
short circuit evaluation可以缩短编译时间,所以才知道C,C++都是这么用的。但是有没有短路求值破坏代码的情况呢?
短路不会缩短代码的编译时间。 (至少任何有意义的数量)
它可能会缩短运行时间,但这不是它的预期目的。
短路的目的是为了检查特定条件做最少的工作。
例如:
当使用 &&
(与单个 &
相对)时,如果左边的操作数为假,则不会计算右边的操作数。这是由于 logical and
操作的性质:如果至少一个操作数为假,则整个表达式为假。
从技术上讲,如果条件提前失败,它会缩短运行时间,但节省的运行时间取决于每个操作数中的表达式。
无论如何,使用 &&
是不正确的,因为它比 &
"faster"。您应该在适当的时候使用其中之一。
&
用于位运算