🧮 Go 运算符与表达式完全攻略|新手必学

2026-04-10 3 0

本篇基于 Go 1.25.1 版本,带你系统掌握算术、关系、逻辑、位运算,吃透优先级与表达式规则!


一、运算符总分类(清晰表格)

分类运算符说明
算术运算符+ - * / % ++ --数学计算
关系运算符== != > < >= <=比较判断
逻辑运算符`&&
赋值运算符`= += -= *= /= %= &== ^= <<= >>=`
位运算符`&^ << >> &^`

二、算术运算符(最常用)

支持加减乘除、取余、自增自减。

package main

import "fmt"

func main() {
    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

    // 自增、自减(只能单独使用)
    a++
    fmt.Println("自增后 a:", a) // 11
    b--
    fmt.Println("自减后 b:", b) // 2
}

三、关系运算符(判断用)

结果一定是 true / false

func main() {
    x, y := 5, 8

    fmt.Println("等于:", x == y)  // false
    fmt.Println("不等于:", x != y) // true
    fmt.Println("大于:", x > y)   // false
    fmt.Println("小于:", x < y)   // true
    fmt.Println("大于等于:", x >= y) // false
    fmt.Println("小于等于:", x <= y) // true
}

四、逻辑运算符(多条件判断)

用于布尔值之间的逻辑运算。

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

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

五、赋值运算符

func main() {
    n := 2
    n += 3 // n = n + 3
    fmt.Println(n) // 5

    n *= 2 // n = n * 2
    fmt.Println(n) // 10
}

六、位运算符(二进制操作)

对二进制位进行计算,高效底层运算。

func main() {
    // 2 → 10, 3 → 11
    fmt.Println("按位与 &:", 2&3)  // 10 & 11 = 10 → 2
    fmt.Println("按位或 |:", 2|3)  // 11 → 3
    fmt.Println("按位异或 ^:", 2^3) // 01 → 1
    fmt.Println("左移 <<:", 2<<1)  // 10 → 100 = 4
    fmt.Println("右移 >>:", 2>>1)  // 10 → 1 = 1
}

七、运算符优先级(必背)

优先级从高到低

  1. 1. * / % << >> &
  2. 2. + - | ^
  3. 3. == != < > <= >=
  4. 4. &&
  5. 5. ||

口诀:乘除位运算 → 加减或异或 → 比较 → 与 → 或


八、完整可运行 Demo(全覆盖)

main.go 可直接本地运行:

package main

import "fmt"

func main() {
    fmt.Println("=== 算术运算 ===")
    a, b := 10, 3
    fmt.Println("a + b =", a+b)
    fmt.Println("a / b =", a/b)
    fmt.Println("a % b =", a%b)
    a++
    fmt.Println("a++ =", a)

    fmt.Println("\n=== 关系运算 ===")
    fmt.Println("a > b =", a > b)
    fmt.Println("a == b =", a == b)

    fmt.Println("\n=== 逻辑运算 ===")
    fmt.Println("true && false =", true && false)
    fmt.Println("true || false =", true || false)

    fmt.Println("\n=== 位运算 ===")
    fmt.Println("2 & 3 =", 2&3)
    fmt.Println("2 << 1 =", 2<<1)

    fmt.Println("\n=== 优先级测试 ===")
    fmt.Println("2 + 3 * 4 =", 2+3*4) // 先乘后加 = 14
    fmt.Println("(2+3)*4 =", (2+3)*4) // 括号优先 = 20
}

运行命令:

go run main.go

九、表达式求值规则

  1. 1. 优先级高先算
  2. 2. 同级从左到右
  3. 3. 括号 () 优先级最高
  4. 4. 逻辑运算存在短路false && ... 直接返回 false,不执行后续

十、新手避坑指南

  1. 1. 整数除法只保留整数10/3=3
  2. 2. 自增自减是语句,不能赋值:不能写 c = a++
  3. 3. 比较用 ==,赋值用 =
  4. 4. 不确定优先级就加括号,最安全

📌 总结

  1. 1. 算术:+ - * / % ++ --
  2. 2. 关系:== != > < >= <=
  3. 3. 逻辑:&& || !
  4. 4. 位运算:& | ^ << >>
  5. 5. 优先级:乘除 > 加减 > 比较 > 逻辑

一篇搞定 Go 运算符,新手直接上手写逻辑 ✨

相关文章

📘 Go 基本数据类型全解|新手一次吃透!
Go 变量声明与初始化|新手必背核心指南
Go 跨平台交叉编译|一行命令打包全平台!
🔥Go vet 代码体检神器|新手也能秒懂的静态检查指南
✨ Go 代码颜值天花板!gofmt 格式化保姆级教程
🚀Go 命令行工具全解|新手必背常用命令!

发布评论