网站建设基础摘要免费网站制作软件平台

前言
🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云博客专家
😉😉 💕 座右铭: 先努力成长自己,再帮助更多的人,一起加油进步
🍺🍺🍺 💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘
文章目录
- 前言
- 一. 保留字
- 二. 运算符
- 2.1 算术运算符
- 2.2 关系运算符
- 2.3 逻辑运算符
- 2.4 位运算符
- 2.5 赋值运算符
- 三. 优先级
- 总结
一. 保留字
Go语言中有25个保留关键字(keyword),保留关键字不能被用来作为常量,变量,函数名。
所有保留字如下:

这 25 个关键字按照作用可以分为 3 类,分别为包管理、程序实体声明与定义与程序流程控制:
包管理(2个):import package程序实体声明与定义(8个):chan const func interface map struct type var程序流程控制(15个):break case continue default defer else fallthrough for go goto if range return select switch
除了保留关键字外,外另还提供了36个预定的标识符,其包括基础数据类型和系统内嵌函数。

二. 运算符
我们常说程序=算法+数据,算法指的是利用计算机解决问题的处理步骤,简而言之,算法就是解决问题的步骤。 从加法指令到上万台服务器组成的分布式计算集群,都是由算法去处理不同层次存储设备里的数据。
有句话说: 硬件的方向是物理,软件的方式是数学,一般学数学专业的,最后会成为管理程序员干活的。
go语言常见的运算符分类:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
- 其他运算符
2.1 算术运算符
假定 a :=10 b:=20
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 相加 | A + B 输出结果 30 |
| - | 相减 | A - B 输出结果 -10 |
| * | 相乘 | A * B 输出结果 200 |
| / | 相除 | B / A 输出结果 2 |
| % | 求余 | B % A 输出结果 0 |
| ++ | 自增 | A++ 结果是11 |
| – | 自减 | A-- 结果是9 |
用实例来验证算术运算符:
package mainimport "fmt"func main() {var a int = 10var b int = 20var C intC = a + bfmt.Println("a+b=",C)C = a - bfmt.Println("a-b=",C)C = a * bfmt.Println("a*b=",C)C = a / bfmt.Println("a/b=",C)C = a % bfmt.Println("a%b=",C)a++fmt.Println("A++ =",a)}
2.2 关系运算符
下表列出了所有Go语言的关系运算符。假定 A 值为 10,B 值为 20:
| 运算符 | 描述 | 实例 |
|---|---|---|
| == | 检查两个值是否相等,如果相等返回 True 否则返回 False。 | (A == B) 为 False |
| != | 检查两个值是否不相等,如果不相等返回 True 否则返回 False。 | (A != B) 为 True |
| > | 检查左边值是否大于右边值,如果是返回 True 否则返回 False。 | (A > B) 为 False |
| < | 检查左边值是否小于右边值,如果是返回 True 否则返回 False。 | (A < B) 为 True |
| >= | 检查左边值是否大于等于右边值,如果是返回 True 否则返回 False。 | (A >= B) 为 False |
| <= | 检查左边值是否小于等于右边值,如果是返回 True 否则返回 False。 | (A <= B) 为 True |
package mainimport "fmt"func main() {var a int = 10var b int = 20fmt.Println(a == b) //falsefmt.Println(a < b) //truefmt.Println(a > b) //falsefmt.Println(a != b) //true}
2.3 逻辑运算符
&&逻辑 AND 运算符。 如果两边的操作数都是 True,则为 True,否则为 False。||逻辑 OR 运算符。 如果两边的操作数有一个 True,则为 True,否则为 False。!逻辑 NOT 运算符。 如果条件为 True,则为 False,否则为 True。
package mainimport "fmt"func main() {var(a = trueb = false)fmt.Println("a && b" ,a && b)fmt.Println("a || b" ,a || b)fmt.Println("!a" ,!a)}
运行结果:

2.4 位运算符
位运算符对整数在内存中的二进制位进行操作
| 运算符 | 描述 | 例子 |
|---|---|---|
| & | 参与运算的两数各对应的二进位相与。(两位均为1才为1) | a &b 0101 & 0011 = 0001 |
| | | 参与运算的两数各对应的二进位相或。(两位有一个为1就为1) | a|b 0101 |0011 =0111 |
^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。 | 0101 ^ 0011=0110 |
| << | 左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0 | 0001<<3 =1000 |
| >> | 右移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。 | 1010 >> 2 =0011 |
func main() {var a uint = 60 /* 60 = 0011 1100 */var b uint = 13 /* 13 = 0000 1101 */var c uint = 0c = a & b /* 12 = 0000 1100 */fmt.Printf("Line 1 - Value of c is %d\n", c )c = a | b /* 61 = 0011 1101 */fmt.Printf("Line 2 - Value of c is %d\n", c )c = a ^ b /* 49 = 0011 0001 */fmt.Printf("Line 3 - Value of c is %d\n", c )c = a << 2 /* 240 = 1111 0000 */fmt.Printf("Line 4 - Value of c is %d\n", c )c = a >> 2 /* 15 = 0000 1111 */fmt.Printf("Line 5 - Value of c is %d\n", c )
}
运行结果:

2.5 赋值运算符
| 运算符 | 描述 |
|---|---|
| = | 简单的赋值运算符,将一个表达式的值赋给一个左值 |
| += | 相加后再赋值 |
| -= | 相减后再赋值 |
| *= | 相乘后再赋值 |
| /= | 相除后再赋值 |
| %= | 求余后再赋值 |
| <<= | 左移后赋值 |
| >>= | 右移后赋值 |
| &= | 按位与后赋值 |
| = | 按位或后赋值 |
| ^= | 按位异或后赋值 |
package mainimport "fmt"func main() {var a int = 20var c intc=afmt.Println(c) //20c += afmt.Println(c) //40c *=afmt.Println(c) //800
}
三. 优先级
下表为各运算符的优先级示图,优先级从高到低:
| 优先级 | 类别 | 运算符 |
|---|---|---|
| 1 | 括号运算符 | () |
| 2 | 单目运算符 | !、++、– |
| 3 | 算数运算符 | *、/、% |
| 4 | +、- | |
| 5 | 位移运算符 | >>、<< |
| 6 | 关系运算符 | <、<=、>、>= |
| 7 | ==、!= | |
| 8 | 按位与 | & |
| 9 | 按位异或 | ^ |
| 10 | 按位或 | | |
| 11 | 逻辑与 | && |
| 12 | 逻辑或 | || |
| 13 | 赋值运算符 | =、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、 |
package mainimport "fmt"func main() {var a = 3var b = 4var c = 12fmt.Println(a+b*c) //51fmt.Println((a+b)*c)//84
}
从上述代码中可以看到 a+b*c是先运算b*c +a,结果等于51
总结
Go 语言的运算符一般分为算数运算符、关系运算符、逻辑运算符、位运算符以及赋值运算符四大类, 你学会了吗?
💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 全力以赴,持续学习,不负如来不负卿
💕 喜欢的话记得点赞收藏哦
