Z
ZHANK
入门基础

运算符

算术/比较/逻辑运算符、&* 取址/解引用、位运算符、<- 通道

运算符

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   右移