运算符 | 逻辑运算 |
---|---|
&& | 与(短路与) |
|| | 或(短路或) |
! | 非 |
在程序开发中,逻辑运算符大家应该都比较熟悉了,最近在Golang的学习中,又收获了一个小特性,记录一下。逻辑运算符中的短路特性
!总结:
逻辑运算符:
1.非【!】 非真为假 非假为真
2.或【||】同假为假 其余为真
3.与【&&】同真为真 其余为假
注意:逻辑运算符只针对于布尔类型的数据值 或者表达式使用
这是原先的总结,依次为基础,我们来看下短路
首页我们写一个短路的证明:
代码:
//因为0不能作为除数的特性 ,我们这里使用0来进行举证。
a,b:=10,0
if a>0 || a/b>0{
fmt.Println("OK")
}
分析 :这个时候 || 左边为true 右边会报错 而或[||] 只要有一个为true即可满足条件
这个时候 我们是可以看到OK的输出的 而没有报错
如果改为a<0 左边的判断条件为false 就会接着去执行右边的表达式 此时报错 而OK也无法输出
代码:
//因为0不能作为除数的特性 ,我们这里使用0来进行举证。
a,b:=10,0
if a>0 && a/b>0{
fmt.Println("OK")
}
并且 同真为真 其余为假 根据这个特性 我们就可以推导 和上面的短路或 有一些相似
而他是在其中有一个是false的情况下 即我们得出左边的值是false 那么程序就会直接输出OK 不会报右边除于0的错误
上述举例中,a>0为true 这种情况下 还会继续向右执行 这个时候是报错的
很简单的一个点 希望对大家能有帮助。