Golang 运算符
运算符是一种特俗的符号,勇以表示数据的运算、赋值和比较。
1)算数运算符
算数运算符是对数值类的变量进行运算的,比如:加减乘除。在go语言中使用非常多。
除法的使用案例:
package main import ( "fmt" ) func main(){ //重点讲解 /、% //说明:如果运算的数都是整数,那么除后的结果去掉小数部分,保留整数部分 fmt.Println(10/4) //输出的结果仍然是整数 var n1 float32 = 10 / 4 fmt.Println(n1) //如果我们希望保留小数部分,则需要有浮点数参与运算 var n2 float32 = 10.0 / 4 fmt.Println(n2) }
取模的运算案例:
package main import ( "fmt" ) func main(){ // % 演示 // 取模运算的公式:a % b = a -a / b *b // 符号由 第一个数决定 //结果 1 fmt.Println(10 / 3) //结果 -1 fmt.Println(-10 / 3) //结果 1 fmt.Println(10 / -3) //结果 -1 fmt.Println(-10 / -3) }
++和--的运算案例:
package main import ( "fmt" ) func main(){ //++和--的使用 var i int = 10 i++ //等价 i = i + 1 fmt.Println("i = ",i) //11 i-- //等价 i = i - 1 fmt.Println("i = ",i) //10 }
输出结果如下:
细节说明:
1)对于除号 ”/“,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分,例如:x := 19 / 5,结果是3
2)当对一个数取模时,可以等价 a%b = a - a /b * b,这样我们可以看到取模的一个本质运算。
3)Golang 的自增自减只能当做一个独立语言使用时,不能这样使用 b:=a++ 或 b:=a--
错误案例:
4)Golang 的++和-- 只能写在变量的后面,不能写在变量的前面,即:只有 a++ 、a--没有++a、--a
5)Golang的设计者去掉c/java 中的自增自减的容易混淆的写法,让Golang更加简洁,统一。(强制性的)
2)赋值运算符
赋值运算符就是将某个运算后的值,赋给指定的变量。
=、+=、-=、/=、%=
3)比较运算符(关系运算符)
关系运算符的结果都是bool型,也就是要么是true,要么是false
关系表达式经常用在if结构的条件中或循环结构的条件中
运算符 | 运算 |
== | 相等于 |
!= | 不等于 |
< |
小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
细节说明:
1)关系运算符的结果都是bool型,也就要么就式true,要么是false
2)关系运算符组成的表达式,我们称为关系表达式:a>b
3)比较运算符“==”不能误写成“=”
4)逻辑运算符
用于连接多个条件(一般来讲就是关系表达式),最终的结果也式一个bool值
&& 与
|| 或
! 非
细节说明:
1)&&也叫短路与:如果第一个条件为false,则第二个条件不会判断,最终结果为false。(一假则假)
2)||也叫短路或:如果第一个条件为true,则第二个条件不会判断,最终结果为ture。(一真则真)
5)位运算符
6)其他运算符
运算符 | 描述 | 实例 |
& | 返回变量存储地址 | &a;将给出变量的实际地址 |
* | 指针变量 | *a;是一个指针变量 |
7)运算符的优先级
分类 | 描述 | 关联性 | 优先级 |
后缀 | () [] -> . ++ -- | 左到右 | 高 |
单目 | + - ! ~ (type) * & sizeof | 右到左 | |
乘法 | * / % | 左到右 | |
加法 | + - | 左到右 | |
移位 | << >> | 左到右 | |
关系 | < <= > >= | 左到右 | |
相等(关系) | == != | 左到右 | |
按位AND | & | 左到右 | |
按位XOR | ^ | 左到右 | |
按位OR | | | 左到右 | |
逻辑AND | && | 左到右 | |
逻辑OR | || | 左到右 | |
赋值运算符 |
= += -= *= /= >>= <<= &= ^= |= |
右到左 | |
逗号 | , | 左到右 | 低 |
大致的顺序:
1.括号
2.单目运算符
3.算数运算符
4.移位运算
5.关系运算
6.位运算符
7.逻辑运算符
8.赋值运算符
9.逗号
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!