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

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

相关推荐
花酒锄作田2 天前
Gin 框架中的规范响应格式设计与实现
golang·gin
qwfys2002 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
codeejun2 天前
每日一Go-25、Go语言进阶:深入并发模式1
开发语言·后端·golang
石牌桥网管2 天前
Go 泛型(Generics)
服务器·开发语言·golang
小二·2 天前
Go 语言系统编程与云原生开发实战(第21篇)
开发语言·云原生·golang
小二·2 天前
Go 语言系统编程与云原生开发实战(第20篇)
开发语言·云原生·golang
女王大人万岁2 天前
Golang实战Eclipse Paho MQTT库:MQTT通信全解析
服务器·开发语言·后端·golang
codeejun2 天前
每日一Go-24、Go语言实战-综合项目:规划与搭建
开发语言·后端·golang
石牌桥网管2 天前
Go类型断言
开发语言·后端·golang
普通网友3 天前
PHP语言的正则表达式
开发语言·后端·golang