Go 运算符

Go 运算符分六类:算术、关系、逻辑、位、赋值、其他。片段省略外壳,可放入 main 函数运行。

1. 算术运算符

+ - * / % 加、减、乘、除、取余,以及自增 ++、自减 --

a, b := 17, 5
fmt.Println(a+b, a-b, a*b) // 输出: 22 12 85
fmt.Println(a/b, a%b)      // 输出: 3 2(整数除法)
a++
fmt.Println(a)             // 输出: 18

2. 关系运算符

== != > < >= <=,结果都是布尔值:

fmt.Println(5 > 3, 5 == 3, 5 != 3) // 输出: true false true

3. 逻辑运算符

&& 与、|| 或、! 非:

age, score := 20, 88
fmt.Println(age >= 18 && score >= 60) // true,两边都真
fmt.Println(age >= 18 || score < 60)  // true,一边为真即可
fmt.Println(!(age >= 18))             // false,取反

4. 位运算符

& 与、| 或、^ 异或、<< 左移、>> 右移,按二进制位计算:

a, b := 6, 3 // 二进制 110、011
fmt.Println(a&b, a|b, a^b) // 输出: 2 7 5
fmt.Println(a<<1, a>>1)    // 输出: 12 3

5. 赋值运算符

= 与复合形式 += -= *= /= %= <<= >>= &= |= ^=

x := 10
x += 5 // 相当于 x = x + 5
x *= 2 // 相当于 x = x * 2
fmt.Println(x) // 输出: 30

6. 其他运算符

& 取变量地址、* 取指针指向的值,属于指针语法:

n := 42
p := &n
fmt.Println(*p) // 通过指针取值,输出: 42

优先级简表

由高到低大致为:* / % << >> &+ - | ^== != < <= > >=&&||。同级从左到右计算,括号可改变顺序:

fmt.Println(2+3*4)   // 输出: 14,乘法优先
fmt.Println((2+3)*4) // 输出: 20,括号优先

小结

六类运算符覆盖日常编程所需;记不清优先级就多用括号,代码更清晰、不易出错。

笔记加载中…