gpt4 book ai didi

delphi - 使用大 if 子句还是堆叠它们?

转载 作者:行者123 更新时间:2023-12-03 15:45:21 25 4
gpt4 key购买 nike

什么是更好的做事方式?

if f1() and f2() then...

if f1() then
if f2() then

或者:

fBoolean1 := f1()
fBoolean2 := f2()

if fboolean1 and fboolean2 then...

在第一个示例中,我不确定评估两个函数中的哪一个。在第二个示例中,仅当 f1 计算结果为 true 时,f2 才会被计算,而在第三个示例中,f1 和 f2 都会被计算。

最好的方法是什么?

最佳答案

编译器很聪明。在您的第一个示例中,如果 f1 返回 false,则 f2 甚至不会被调用(除非您通过禁用 惰性求值 bool 短路求值)。因此,第一个选项与第二个选项等效(同样,除非您更改了默认设置)。

因此,从性能角度来看,前两个选项更好。否则,这是一个品味问题。第二个选项将产生两个代码块,具有两级代码缩进(如果您遵循标准缩进规则,就像您似乎所做的那样)。由于这个原因,您可能更喜欢第一个选项。

当然,如果您稍后需要使用f1f2返回的值,甚至多次,那么第三个选项更优越。

关于delphi - 使用大 if 子句还是堆叠它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632921/

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