Golang bool 类型
最后修改时间 2025 年 5 月 8 日
本教程将讲解如何在 Go 中使用内置的 bool 类型。我们将通过实际示例涵盖布尔基础知识和布尔运算。
bool 类型在 Go 中代表布尔值。它只有两个值:true 或 false。布尔值对于控制流和逻辑运算至关重要。
在 Go 中,bool 用于条件语句、循环和逻辑表达式。布尔类型的零值为 false。
基本布尔声明
bool 最简单的用法是声明和初始化布尔变量。此示例演示了基本的布尔变量用法。
注意:布尔值不会隐式转换为整数。
basic_bool.go
package main
import "fmt"
func main() {
var isReady bool = true
var isFinished bool
fmt.Println("isReady:", isReady)
fmt.Println("isFinished:", isFinished)
isFinished = false
fmt.Println("After assignment, isFinished:", isFinished)
}
该示例展示了带或不带初始化的布尔声明。对于未初始化的变量,将打印零值 false。
布尔表达式
布尔值通常是比较运算的结果。此示例显示了各种布尔表达式及其结果。
boolean_expressions.go
package main
import "fmt"
func main() {
x := 10
y := 20
fmt.Println("x == y:", x == y)
fmt.Println("x != y:", x != y)
fmt.Println("x < y:", x < y)
fmt.Println("x > y:", x > y)
fmt.Println("x <= 10:", x <= 10)
fmt.Println("y >= 20:", y >= 20)
}
比较运算符返回布尔值。这些对于程序中的决策至关重要。
逻辑运算符
Go 提供了三个逻辑运算符来组合布尔值。此示例演示了 AND、OR 和 NOT 运算。
logical_operators.go
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println("a >> b:", a >> b) // AND
fmt.Println("a || b:", a || b) // OR
fmt.Println("!a:", !a) // NOT
// Combining multiple operations
fmt.Println("(a || b) >> !b:", (a || b) >> !b)
}
逻辑运算符遵循标准真值表。可以使用括号控制求值顺序。
控制结构中的布尔值
布尔值对于控制流至关重要。此示例在 if 语句和 for 循环中演示了布尔值。
control_structures.go
package main
import "fmt"
func main() {
loggedIn := true
attempts := 0
if loggedIn {
fmt.Println("Welcome back!")
} else {
fmt.Println("Please log in")
}
for attempts < 3 {
fmt.Println("Attempt:", attempts+1)
attempts++
}
fmt.Println("Maximum attempts reached")
}
if 语句直接检查布尔条件。for 循环在布尔条件保持为 true 时继续。
布尔函数返回值
函数通常返回布尔值以指示成功或其他状态。此示例显示了一个返回布尔值的函数。
boolean_function.go
package main
import "fmt"
func isEven(num int) bool {
return num%2 == 0
}
func main() {
numbers := []int{1, 2, 3, 4, 5}
for _, num := range numbers {
if isEven(num) {
fmt.Printf("%d is even\n", num)
} else {
fmt.Printf("%d is odd\n", num)
}
}
}
isEven 函数根据输入数字返回一个布尔值。这种模式对于谓词函数很常见。
来源
本教程通过布尔运算和用法模式的实际示例,涵盖了 Go 中的 bool 类型。