跳到主要内容

go布尔类型

数据类型是编程语言的重要概念,它决定了一类值的集合以及对应的操作。本文介绍 go 的布尔类型。

 布尔类型用来表示真(true)假(false)的概念。go 使用bool标识一个变量属于布尔类型,默认值为false。布尔类型常用于流程控制(常和if搭配使用),涉及到的运算符有以下两种。

1. 比较运算符

 布尔类型可以是两个其他类型数据比较的结果,例如两个整数是否相等。go 语言定义的比较运算符如下表。

运算符含义
==等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于

 下面是一些比较运算符的例子,包含整数与整数、整数与浮点数(经过转换)、字符串与字符串、布尔类型与布尔类型的比较。

import "fmt"

func main() {

x := 5
y := 6
var z float32 = 6.5
u := true

s1 := "languan"
s2 := "doc"

fmt.Println("comp 1:", x < y)
fmt.Println("comp 2:", s1 > s2)
fmt.Println("comp 3:", float32(x) > z)
fmt.Println("comp 4:", u != (float32(x) > z))
}

 两个操作数能进行比较的前提是:两个操作数能相互赋值。特殊类型的比较规则如下:

  1. 同类型的指针可以进行比较(可以相互赋值),当两个指针指向同一个变量或者两个指针都为nil时,两者相等。
警告
x=y  //将y赋值给x
x==y //x与y是否相等

2. 逻辑运算符

 逻辑运算符用来计算两个或两个以上的表达式是真还是假,例如年龄超过10岁并且是女孩,它是两个条件判断(年龄超过10岁,性别为女)通过逻辑运算符(并且)连接的例子。

go 里定义了三种逻辑运算符:与(&&)、或(||)和非(!)。与(&&)和或(||)的真值表如下。

&&真值表

truefalse
truetruefalse
falsefalsefalse

||真值表

truefalse
truetruetrue
falsetruefalse

!运算取相反,即表达式为true,则非为false;表达式为false,则非为true

署名-非商业性使用-禁止演绎 4.0 国际