news 2026/8/7 9:38:36

Go语言运算符

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Go语言运算符

Go语言运算符

运算符是程序进行计算、判断、逻辑处理的基础。Go 的运算符简洁安全,不支持三目运算符、杜绝非法运算。

一、Go运算符分类总览

Go 常用运算符分为 6 大类:

  1. 算术运算符:加减乘除取余
  2. 关系运算符:大于、小于、等于、不等于
  3. 逻辑运算符:与、或、非
  4. 位运算符:二进制运算
  5. 赋值运算符:赋值、复合赋值
  6. 其他运算符:自增、自减、取地址、解引用

二、算术运算符(+ - * / %)

用于数值计算,支持整型、浮点型。

符号作用示例
+相加 / 字符串拼接a + b
-相减a - b
*相乘a * b
/相除a / b
%取余(取模)a % b

重点易错

  • 整数 / 整数 = 整数,向下取整,不会保留小数
  • 取余 % 只能用于整型,浮点不能取余

代码示例

packagemainimport"fmt"funcmain(){a:=10b:=3fmt.Println(a+b)// 13fmt.Println(a-b)// 7fmt.Println(a*b)// 30fmt.Println(a/b)// 3 整数相除舍去小数fmt.Println(a%b)// 1// 字符串拼接s1:="hello"s2:="golang"fmt.Println(s1+s2)}

三、关系运算符(比较大小)

运算结果一定是bool 类型(true / false),常用于 if 判断、循环条件。

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

易错点

  • 判断相等是==,不是 =
  • Go 不支持连续判断:a < b < c非法

四、逻辑运算符(&& || !)

用于拼接多个判断条件,返回布尔值。

符号含义规则
&&逻辑与(并且)全真才真,一假则假
||逻辑或(或者)一真则真,全假才假
!逻辑非(取反)真变假,假变真

短路特性(面试必考)

  • && 短路:前面为 false,后面不执行
  • || 短路:前面为 true,后面不执行
a:=10ifa>20&&a++>0{}// a 仍然是10,后半句没执行

五、位运算符(针对二进制)

位运算是底层运算,速度最快,算法题高频使用。

符号作用
&按位与:同为1才为1
|按位或:有1就为1
^按位异或:相同为0,不同为1
<<左移(左移n位就是乘以2的n次方)
>>右移(除以2的n次方)

六、赋值运算符

符号说明
=普通赋值
+=相加后赋值
-=相减后赋值
*=相乘后赋值
/=相除后赋值
%=取余后赋值
a:=10a+=5// 等价 a = a + 5

七、自增、自减(Go独有规则)

  • i++自增1
  • i–自减1

Go 硬核规则(区别其他语言)

只能后置,不能前置!不能参与运算!

非法代码:

++i// 报错res:=i++// 报错

正确写法:

i++

八、Go 运算符优先级(从高到低)

不用死记,记住核心:括号 > 算术 > 位运算 > 比较 > 逻辑

  1. 括号 ()
  2. 自增、自减
  3. 乘、除、取余
  4. 加、减
  5. 移位
  6. 比较运算符(> < == !=)
  7. 逻辑与 &
  8. 逻辑或 ||
  9. 赋值运算符

九、Go 独有特点

  • ✅ 没有三目运算符(Go 认为三目代码混乱)
  • ✅ 自增自减只能后置、不能嵌套运算
  • ✅ 整数相除自动取整
  • ✅ 严格类型匹配,不同类型不能直接运算
  • ✅ 逻辑短路机制提升性能

十、总结

  1. 算术运算符负责数值计算,注意整数相除和取余规则;
  2. 关系运算符返回布尔值,用于条件判断;
  3. 逻辑运算符支持短路机制,提升执行效率;
  4. 位运算符效率极高,异或是经典算法利器;
  5. Go 对 ++、-- 做了严格限制,语法更安全、代码更整洁。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/7 9:37:32

Zookeeper集群部署与分布式锁实现实战指南

1. Zookeeper集群与分布式锁的核心价值 在分布式系统中&#xff0c;数据一致性和资源协调是两大核心挑战。Zookeeper作为一个分布式协调服务&#xff0c;通过其独特的ZAB协议和树形数据结构&#xff0c;为分布式应用提供了可靠的协调基础。而分布式锁作为Zookeeper最典型的应用…

作者头像 李华
网站建设 2026/8/7 9:35:14

基于腾讯云Lighthouse与GLM-5.1大模型构建个性化AI数字人实践

1. 项目概述&#xff1a;用技术“复活”一段记忆 最近在整理旧物时&#xff0c;翻出了大学时恩师留下的几本手写教案和批注过的论文。恩师已故去多年&#xff0c;但他严谨的治学态度和风趣的谈吐&#xff0c;至今仍让我怀念。一个念头突然冒出来&#xff1a;能不能用现在的大模…

作者头像 李华
网站建设 2026/8/7 9:33:45

自制八倍潜望镜:从光学原理到DIY实践,打造你的专属观察系统

1. 项目概述&#xff1a;从“玩具”到“观察利器”的蜕变 “八倍潜望镜”这个项目&#xff0c;听起来是不是有点像小时候手工课上的玩具&#xff1f;但如果你真这么想&#xff0c;那就错过了它背后隐藏的巨大实用价值和探索乐趣。本质上&#xff0c;这是一个利用光学原理&#…

作者头像 李华
网站建设 2026/8/7 9:33:37

UE5横板2D游戏开发:AI行为树与碰撞检测实战指南

1. 项目概述&#xff1a;从零构建UE5横板2D游戏的核心行为框架 最近在UE5里折腾一个横板2D动作游戏&#xff0c;核心目标很明确&#xff1a;让角色不仅能跑能跳&#xff0c;还得有脑子。这个“脑子”指的就是一套完整的AI行为逻辑&#xff0c;包括区分敌我、执行攻击、处理死亡…

作者头像 李华
网站建设 2026/8/7 9:28:10

Deployment-001篇

文章目录 第一部分:为什么必须要有 Deployment? 1. 自主式 Pod 的痛点(生产环境的灾难) 2. Deployment 的解决方案 第二部分:Deployment 的架构层级 第三部分:你的第一个 Deployment(动手) 1. 编写 YAML 文件 2. 执行命令 3. 验证自愈能力(重点实验) 第四部分:Deplo…

作者头像 李华