Go语言布尔类型仅含true和false,专用于逻辑运算与条件判断,不支持隐式类型转换;声明需显式初始化,支持短路求值逻辑运算符&&、||、!,if语句可带初始化,布尔字段应使用肯定式命名。
Go语言中的布尔类型(bool)只有两个值:true 和 false,它专用于逻辑运算和条件判断,不与整数或其他类型隐式转换。掌握它的正确用法,是写出清晰、安全 Go 代码的基础。
Go 中布尔变量必须显式初始化,不能留空(零值为 false,但建议明确赋值):
var 声明并初始化:var isActive bool = true
isActive := true(编译器自动推导为 bool)if strings.HasPrefix(s, "http") { ... }
Go 支持三个基本逻辑运算符:&&(与)、||(或)、!(非)。它们都要求操作数为 bool 类型,且支持短路求值:
a && b:当 a 为 false 时,b 不执行(避免空指针或副作用)a || b:当 a 为 true 时,b 不执
行!a:翻转布尔值;注意 !nil 是非法的,只能作用于 bool 变量或表达式错误示例:if x > 0 && y != nil 合法(y != nil 返回 bool),但 if x && y 编译失败(x、y 非布尔类型)。
Go 的 if 语句支持在条件前加初始化语句,提升可读性和作用域控制:
if err := doSomething(); err != nil { return err } —— err 仅在该 if 块内有效if isValid && !isLocked && count > 0 { ... }
if user.IsActive { ... } 比 if !user.IsInactive { ... } 更易懂布尔字段常用于标记状态,但需注意命名清晰性:
IsAdmin、HasPermission,而非 NotAdmin 或 DisableLog
isValidEmail(email string) bool、existsInDB(id int) (bool, error)
SendNotification(Options{Silent: true, Urgent: false})