Go语言中的运算符汇总

一、算术运算符

运算符 含义 示例
+ a + b
- a - b
* a * b
/ a / b
% 取余 a % b

注意:Go 中 / 对整数做 截断除法(向零取整)。

二、关系 / 比较运算符

运算符 含义
== 等于
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

Go 中不同类型不能比较,例如 int(1) == int64(1) 会编译报错。

三、逻辑运算符(Logical Operators)

运算符 含义
&& 逻辑 AND
|| 逻辑或 OR
! 逻辑 NOT

短路求值:&& 遇 false 停止,|| 遇 true 停止。

四、位运算符(Bitwise Operators)

运算符 含义 示例
& 按位与 a & b
| 按位或(OR) a | b
^ 按位异或 a ^ b
&^ 按位清零 (bit clear) a &^ b
<< 左移 a << 1
>> 右移 a >> 1

Go 特有:&^ (bit clear)
a &^ b 表示:把 b 为 1 的位置从 a 中清掉。

示例:

Go 复制代码
a := 6  // 110
b := 3  // 011
fmt.Println(a &^ b) // 输出 4(100)

五、赋值运算符

Go 支持组合赋值:

运算符 含义
= 赋值
+= 加后赋值
-= 减后赋值
*= 乘后赋值
/= 除后赋值
%= 取余后赋值
&= 按位与后赋值
` =`
^= 按位异或后赋值
<<= 左移后赋值
>>= 右移后赋值
&^= 清零后赋值

六、指针相关运算符(Pointer Operators)

运算符 含义 示例
& 取变量地址 p := &x
* 取指针指向的值 y := *p

注意:Go 没有 C 那种复杂的指针运算。

七、通道运算符(Channel Operators)

运算符 含义
<- 通道接收 / 发送

示例:

Go 复制代码
ch <- 1   // 发送
x := <-ch // 接收

八、其他重要符号(严格意义上不是运算符但常被问)

符号 含义
:= 短变量声明
... 可变参数、切片展开
. 访问成员
() 调用函数 / 调整优先级
[] 切片 / 数组索引
{} 代码块或结构体字面量

九、运算符优先级

有些运算符拥有较高的优先级,二元运算符的运算方向均是从左至右。下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

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

可以通过使用括号来临时提升某个表达式的整体运算优先级。

相关推荐
fy121632 小时前
GO 快速升级Go版本
开发语言·redis·golang
童话ing4 小时前
【Golang】Golang Map数据结构底层原理
数据结构·golang·哈希算法
GDAL5 小时前
go.mod 文件讲解
golang·go.mod
Java面试题总结5 小时前
Go图像处理基础: image包深度指南
图像处理·算法·golang
robch10 小时前
golang container/heap 是一个为任意类型实现堆(优先队列)接口的包
数据结构·算法·golang
leonkay18 小时前
Golang语言闭包完全指南
开发语言·数据结构·后端·算法·架构·golang
echome8881 天前
Go 语言并发编程实战:用 Goroutine 和 Channel 构建高性能任务调度器
开发语言·后端·golang
yuanlaile1 天前
2026后端趋势:Java 老了?Go 才是未来?
java·后端·golang·go与java·后端学什么
Mr -老鬼1 天前
Go存储架构选型实战:单库、双库还是多库?——基于核心元数据+动态表场景的技术解析
大数据·架构·golang
ithadoop1 天前
go面试知识点分类整理
golang·go