条件判断 if-else
if/else if/else、短声明 if、Go 没有三目运算符
条件判断 if-else
Go 的 if 有两大特色:可以在条件前加短声明(类似 for 的初始化),Go 没有三目运算符。
学完本章你将: 掌握 if/else、短声明 if、真值判断。
if / else if / else
go
package main
import "fmt"
func main() {
score := 85
if score >= 90 {
fmt.Println("优秀")
} else if score >= 80 {
fmt.Println("良好") // 输出这句
} else {
fmt.Println("加油")
}
}
短声明 if —— Go 特色
go
// 在 if 中声明变量(作用域仅限于 if/else 块)
if err := doSomething(); err != nil {
fmt.Println("出错:", err)
return
}
// err 在这里不可见
// 等价于(但作用域更干净)
err := doSomething()
if err != nil {
fmt.Println("出错:", err)
return
}
Go 没有三目运算符
go
// ❌ Go 没有 a ? b : c
// max := a > b ? a : b
// ✅ 用 if-else
max := a
if b > a {
max = b
}
💡 Go 的设计者认为三目运算符容易被滥用(嵌套后难以阅读),所以干脆不加。
真值判断
go
// 只有 true 和 false——没有 truthy/falsy
if true { } // ✅
// if 1 { } // ❌ 编译错误——1 不是 bool
// if "hello" // ❌ 编译错误