在if语句中是否优先考虑所有条件?

时间:2017-08-15 17:33:30

标签: if-statement go

示例:

if function1(input) && function2(input) {}

在这种情况下如果function2(input)返回false,会执行function1(input)吗?

2 个答案:

答案 0 :(得分:6)

你所询问的是Short Circuiting,,是的,Go是这样做的。

language spec,中它说

  

逻辑运算符适用于布尔值,并产生与操作数相同类型的结果。正确评估右操作数。

这意味着,在您的情况下,如果function1返回false,则不会调用function2

查看&& here|| here.

的示例

答案 1 :(得分:3)

没有。 Go使用标准条件快捷逻辑 - false条件串中的第一个&&结果将停止评估其他条件(因为无论其他条件是什么,它都不会产生true结果)。同样,true条件字符串中的第一个||结果将停止评估,因为无论其他条件是什么,它都不会产生false结果。