10、Go 基础数据类型 - 布尔类型

作者: 温新

分类: 【Go基础】

阅读: 592

时间: 2023-07-25 16:06:20

hi,我是温新

在 Go 语言中,使用关键字 bool 来声明布尔类型。布尔类型的值只能是 truefalse,如 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 不会被执行")
}
请登录后再评论