Go语言核心之美 2.4-布尔值
来源:互联网 发布:最新的编程语言 编辑:程序博客网 时间:2024/03/29 14:05
布尔值有两种:true和false。if和for语句中的条件都是布尔值,比较运算符== 、<等也会产生一个布尔值。一元运算符! 是逻辑取反操作,所以!true就是false。Go语言提倡简洁的风格,因此我们会将x == true这种表达式直接写成x:if x {..} 。
布尔值可以结合&&(AND) 、|| (OR)一起使用,这两个操作符都有短路特性,如果操作符的左边表达式就能决定结果了,那操作符右边的表达式不会求值:
s != "" && s[0] == 'x'如果s是空字符串,那s[0]会panic,但是因为s为""的时候,&&左边的表达式是false,因此根据短路规则,&&右边的表达式不会求值,也就不会panic。
因为&&比||的优先级更高,所以下面的条件表达式不需要括号:
if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9' { // ...ASCII letter or digit...}在布尔值和数值之间并没有隐式的类型转换(再次强调,Go是强类型静态语言),反之亦然。需要显式的使用if:
i := 0if b { i = 1}如果这个操作经常发生,那么可以使用一个转换函数:
func btoi(b bool) int { if b { return 1 } return 0}反向操作也很简单,甚至不需要使用函数,不过为了和上面的代码保持对称性:
func itob(i int) bool { return i != 0 }
文章所有权:Golang隐修会 联系人:孙飞,CTO@188.com!
1 0
- Go语言核心之美 2.4-布尔值
- Go语言核心之美 4.3-多返回值
- Go语言核心之美 1.1-命名篇
- Go语言核心之美 1.4-包和文件
- Go语言核心之美 1.5-作用域
- Go语言核心之美 2.1-整数
- Go语言核心之美 2.2-浮点数
- Go语言核心之美 2.3-复数
- Go语言核心之美 2.5-字符串
- Go语言核心之美 2.6-常量
- Go语言核心之美 3.1-数组
- Go语言核心之美 3.2-slice切片
- Go语言核心之美 3.3-Map
- Go语言核心之美 3.4-Struct结构体
- Go语言核心之美 3.5-JSON
- Go语言核心之美 3.6-template模版
- Go语言核心之美 4.1-函数声明
- Go语言核心之美 4.2-递归函数
- 数据库设计技巧
- 导入导出oracle
- 关于状态栏的颜色的自定义的问题
- ubuntu14.04下Google Chrome浏览器不能以root用户身份运行解决
- Install in-house apps wirelessly
- Go语言核心之美 2.4-布尔值
- PAT1040有几个PAT(25)
- android studio 生成apk
- 139. Word Break LeetCode
- 创建 virtualbox client com 失败
- uva442
- 如何在svn中提交一个被重命名的旧项目
- 常见排序的时间复杂度和空间复杂度
- 友元函数