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

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

相关推荐
Wenweno0o4 小时前
Eino - 错误处理与稳定性
golang·智能体·eino
王码码20355 小时前
Go语言中的Elasticsearch操作:olivere实战
后端·golang·go·接口
Tomhex6 小时前
Go语言import用法详解
golang·go
Tomhex7 小时前
Golang空白导入的真正用途
golang·go
Wenweno0o9 小时前
Eino - 从0到1跑通大模型调用
golang·大模型·智能体·eino
不会写DN10 小时前
IPv4 与 IPv6 的核心区别
计算机网络·面试·golang
Flandern111111 小时前
Go程序员学习AI大模型项目实战02:给 AI 装上“大脑”:从配置解包到流式生成的深度拆解
人工智能·后端·python·学习·golang
ん贤15 小时前
Go GC 非玄学,而是 CPU 和内存的权衡
开发语言·后端·golang·性能调优·gc
Dontla1 天前
go语言Windows安装教程(安装go安装Golang安装)(GOPATH、Go Modules)
开发语言·windows·golang
铁东博客1 天前
Go实现周易大衍筮法三变取爻
开发语言·后端·golang