0
点赞
收藏
分享

微信扫一扫

Go 语言系列6:布尔型

关于 布尔(bool) 类型,无非就是两个值:true 或者 false

如果你学过 Python 就会知道真值用 ​​True​​​ 表示,并且与 ​​1​​​ 是相等的;而假值用 ​​False​​​ 表示,并且与 ​​0​​​ 相等。但是在 Go 中,真值是用 ​​true​​ 表示,并且 不与​1​​​ 相等;同样的,假值是用 ​​false​​ 表示,并且 不与​0​​​ 相等。从而在 Go 中不能像在 Python 中一样用布尔值和 ​​0​​​ 或 ​​1​​ 进行比较。

所以,如果你像在 Go 中实现和 Python 类似的布尔值与 ​​0​​​ 或 ​​1​​ 进行比较的功能,需要自己去实现相应的函数。下面提供了相应的两个函数供你参考。

// bool to int
func btoi(b bool) int {
if b {
return 1
}
return 0
}

// int to bool
func itob(i int) bool {
return i != 0
}

​if​​​ 和 ​​for​​​ 语句的条件部分都是布尔类型的值,并且 ​​==​​​ 和 ​​<​​​ 以及 ​​>​​​ 等比较操作也会产生布尔型的值。一元操作符 ​​!​​​ 对应逻辑非操作,二元操作符 ​​&&​​​ 和 ​​||​​​ 分别对应逻辑与和逻辑或操作。其中 ​​&&​​​ 的优先级比 ​​||​​ 高。下面是一个例子:

package main

import (
"fmt"
)

func main() {
a := true
b := false
fmt.Println("a = ", a)
fmt.Println("b = ", b)
fmt.Println("true && false = ", a && b)
fmt.Println("true || false = ", a || b)
}

该程序输出如下:

a =  true
b = false
true && false = false
true || false = true

其中 ​​a​​​ 赋值为 ​​true​​​ , ​​b​​​ 赋值为 ​​false​​​ 。​​a && b​​​ 仅当 ​​a​​​ 和 ​​b​​​ 都为 ​​true​​​ 时,操作符 ​​&&​​​ 才返回 ​​true​​​ 。​​a || b​​​ 仅当 ​​a​​​ 或者 ​​b​​​ 为 ​​true​​​ 时,操作符 ​​||​​​ 返回 ​​true​​ 。

参考文献:

[1] Alan A. A. Donovan; Brian W. Kernighan, Go 程序设计语言, Translated by 李道兵, 高博, 庞向才, 金鑫鑫 and 林齐斌, 机械工业出版社, 2017.




举报

相关推荐

0 条评论