10、Go 基础数据类型 - 布尔类型
hi,我是温新
在 Go 语言中,使用关键字 bool
来声明布尔类型。布尔类型的值只能是 true
或 false
,如 var flag bool = true
。
声明布尔类型
布尔类型的声明有多种方式,下面直接看看案例。
package main
import "fmt"
func main() {
// 方式一,先声明,再赋值
var flag bool
flag = true
fmt.Println(flag)
// 方式二,声明并赋值
var show bool = false
fmt.Println(show)
// 方式三:简短声明,类型推断
status := true
fmt.Println(status)
// 其他方式
result := (1 == 2)
fmt.Println(result)
}
需要注意点有:
-
1、布尔类型不能被其他类型赋值;
-
2、布尔类型不支持类型转换;
-
3、布尔类型只有 true 和 false 两个值,不支持使用 0 和 1 表示真假。
布尔类型运算
布尔类型的常量和变量可以通过和逻辑运算符(!, &&, ||)产生一个布尔值;逻辑值用于条件结构。
非运算符:!
逻辑非运算:用于取得和布尔值相反的结果,true 为 false,false 为 true
package main
import "fmt"
func main() {
status := true
fmt.Println(!status) // 结果 false
}
和运算:&&
&& 运算:当两边的值都为 true 时,结果才为 true
a := true
b := false
fmt.Println(a && b) // 结果为 false
或运算: ||
|| 运算:两边结果都为 false 时,结果才为 false,只要有一个值为 true 时,结果都是为 true。
fmt.Println(a || b) // 结果为 true
在 Go 语言中, &&
和 ||
具有短路行为,若运算符左边的值可以确定整个表达式为的值时(&& 左边的值为 false,|| 左边的值为 true),则运算符右边的表达式将不会执行。
// 根据短路特性,猜猜会输出什么?
c := true
d := false
if d && c {
fmt.Println("猜猜执行哪个?")
} else {
fmt.Println("d 不会被执行")
}
请登录后再评论