运算符
算术/比较/逻辑运算符、&* 取址/解引用、位运算符、<- 通道
运算符
Go 运算符精简:没有三元运算符(用 if-else),++ 和 -- 只能是语句(不是表达式),& 和 * 登场。
学完本章你将: 掌握算术/比较/逻辑、&/* 指针操作、++/-- 限制。
基本运算符
go
a, b := 10, 3
fmt.Println(a + b) // 13
fmt.Println(a - b) // 7
fmt.Println(a * b) // 30
fmt.Println(a / b) // 3 (整数除法)
fmt.Println(a % b) // 1
// 浮点除法
fmt.Println(float64(a) / float64(b)) // 3.333...
& 和 * —— 指针运算符
go
x := 42
p := &x // & 取地址
fmt.Println(*p) // * 解引用 → 42
*p = 100 // 通过指针修改
fmt.Println(x) // 100
++ 和 -- 的特殊限制
go
i := 0
i++ // ✅ 语句(不是表达式)
// j := i++ // ❌ 编译错误!++ 不能作为表达式
// a := [3]int{0,1,2}; b := a[i++] // ❌ 同样不行
// Go 没有三元运算符,用 if-else
// max := a > b ? a : b // ❌ Go 没有这个
max := a
if b > a {
max = b
}
位运算符
go
a, b := 0b0101, 0b0011 // Go 1.13+ 支持二进制字面量
a & b // 1 按位与
a | b // 7 按位或
a ^ b // 6 按位异或
a &^ b // 4 按位清除(Go 特有)
a << 1 // 10 左移
a >> 1 // 2 右移