Skip to content

运算符

算术运算符

go
package main

import "fmt"

func main() {
    a := 10
    b := 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
    
    // 自增自减
    a++  // a = a + 1
    a--  // a = a - 1
}

运算符列表

运算符描述示例
+加法a + b
-减法a - b
*乘法a * b
/除法a / b
%取余a % b
++自增a++
--自减a--

比较运算符

go
package main

import "fmt"

func main() {
    a := 10
    b := 20

    fmt.Println(a == b)  // 相等: false
    fmt.Println(a != b)  // 不等: true
    fmt.Println(a < b)   // 小于: true
    fmt.Println(a > b)   // 大于: false
    fmt.Println(a <= b)  // 小于等于: true
    fmt.Println(a >= b)  // 大于等于: false
}

运算符列表

运算符描述示例
==相等a == b
!=不等a != b
<小于a < b
>大于a > b
<=小于等于a <= b
>=大于等于a >= b

逻辑运算符

go
package main

import "fmt"

func main() {
    a := true
    b := false

    fmt.Println(a && b)  // 与: false
    fmt.Println(a || b)  // 或: true
    fmt.Println(!a)      // 非: false
}

运算符列表

运算符描述示例
&&逻辑与(两边都为true才为true)a && b
||逻辑或(一边为true即为true)a || b
!逻辑非(取反)!a

位运算符

go
package main

import "fmt"

func main() {
    a := 60  // 二进制: 0011 1100
    b := 13  // 二进制: 0000 1101

    fmt.Printf("a & b = %d\n", a&b)   // 按位与: 12
    fmt.Printf("a | b = %d\n", a|b)   // 按位或: 61
    fmt.Printf("a ^ b = %d\n", a^b)   // 按位异或: 49
    fmt.Printf("a << 2 = %d\n", a<<2) // 左移: 240
    fmt.Printf("a >> 2 = %d\n", a>>2) // 右移: 15
}

运算符列表

运算符描述示例
&按位与a & b
|按位或a | b
^按位异或a ^ b
<<左移a << n
>>右移a >> n

赋值运算符

go
package main

import "fmt"

func main() {
    a := 10

    a += 5   // a = a + 5  -> 15
    a -= 3   // a = a - 3  -> 12
    a *= 2   // a = a * 2  -> 24
    a /= 4   // a = a / 4  -> 6
    a %= 4   // a = a % 4  -> 2
    
    fmt.Println(a)  // 2
}

运算符列表

运算符描述等价于
=赋值a = b
+=加后赋值a = a + b
-=减后赋值a = a - b
*=乘后赋值a = a * b
/=除后赋值a = a / b
%=取余后赋值a = a % b
&=按位与后赋值a = a & b
|=按位或后赋值a = a | b
^=按位异或后赋值a = a ^ b

运算符优先级

从高到低:

优先级运算符
1* / % << >> & &^
2+ - | ^
3== != < <= > >=
4&&
5||

建议

使用括号 () 明确优先级,使代码更易读。