示例:
if function1(input) && function2(input) {}
在这种情况下如果function2(input)
返回false,会执行function1(input)
吗?
答案 0 :(得分:6)
你所询问的是Short Circuiting,,是的,Go是这样做的。
在language spec,中它说
逻辑运算符适用于布尔值,并产生与操作数相同类型的结果。正确评估右操作数。
这意味着,在您的情况下,如果function1
返回false,则不会调用function2
。
答案 1 :(得分:3)
没有。 Go使用标准条件快捷逻辑 - false
条件串中的第一个&&
结果将停止评估其他条件(因为无论其他条件是什么,它都不会产生true
结果)。同样,true
条件字符串中的第一个||
结果将停止评估,因为无论其他条件是什么,它都不会产生false
结果。