Golang逻辑运算符短路补充

野狐先生 · · 4708 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

运算符 逻辑运算
&& 与(短路与)
|| 或(短路或)
!

在程序开发中,逻辑运算符大家应该都比较熟悉了,最近在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 这种情况下 还会继续向右执行 这个时候是报错的
很简单的一个点 希望对大家能有帮助。


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:野狐先生

查看原文:Golang逻辑运算符短路补充

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4708 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传