1.运算符
1.介绍
- 运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等
算数、
赋值、
比较/关系、
逻辑、
位、
其他运算符
2.算数运算符
- 对数值类型的变量进行运算
运算符 运算
+ 正号、字符串相加、加
- 负号/减
* 乘
/ 除(取整) (整数之间相除,取整,小数会舍去,)
% 求余(取模) (取余数,小数会舍去)
++ 自增 只能单独使用,只用i++,而且++只能放在后面
-- 自减 只能单独使用,只用i--,而且--只能放在后面
=======================================================================
i = i++ // 错误用法,i++ 只能单独使用
3.关系运算符
- 又叫比较运算符,
- 关系运算符: 结果是bool型,不是true就是false
- 关系运算式:
- 关系运算符组成的表达式,
- 用在 if 结构结构条件中或者循环结构条件中
- 又叫关系表达式
- 结果是:bool类型,不是true就是false
运算符 运算
== 相等
!= 不等
< 小于
> 大于
<= 小于等于
>= 大于等于
4.逻辑运算符
- 用于连接多个条件(一般来讲就是关系表达式),
- 结果:一个bool值
运算符 运算
&& 逻辑与,两边均为真,才是真 短路与,第一个条件为假,第二个就不会执行
|| 逻辑或,一个为真就是真 短路或,第一个条件为真,第二个就不会执行
| 逻辑非, 条件是true,则逻辑为false
5.位运算符
在计算机运算的时候,都是以补码的方式来运算的
运算符 运算
& 按位与 双目运算,功能是参与运算的两位数各对应的二进制相与,规则:同时为1,结果为1
| 按位或 双目运算,功能是参与运算的两位数各对应的二进制相或,规则:一个位1,结果为1
^ 按位非 双目运算,功能是参与运算的两位数各对应的二进制相非。规则:二进位不同,结果为1
6.移位运算符
<< 左位 双目运算,把<<左侧的运算数的各二进位全部左移若干位,高位丢去,低位补0,左移n位就是乘以2的n次方
>> 右移 双目运算,把>>左侧的运算数的各二进制全部右移若干位,右移n位就是除以2的n次方
// 备注:就把二进制的补码,被冻结成尺子,让整个尺子进行》箭头的方向移动,对,就是整体移动
1.右移运算符:低位溢出,符号位不变,并用符号位补溢出的高位
2.左移运算符:符号位不变,低位补0
7.赋值运算
- 运算顺序从左到右
- 赋值运算左边——>只能是变量,右边随意
- 赋值运算符就是将某个运算后的值,赋给指定的变量。
运算符 运算
= 简单的赋值运算
+= 相加后再赋值
-= 相减后再赋值
*= 相见后再赋值
/= 相减后再赋值
%= 取余后再赋值
二进制赋值
运算符 运算
<<= 左移后赋值
>>= 右移后赋值
&= 按位与后赋值
^= 按位异后赋值
!= 按位或后赋值
8.其他运算符
运算符 运算
& 返回变量储存地址(给出变量的实际地址)
* 指针变量 (一个指针变量)
9.特别说明
- go语言明确说明不支持三元运算
10.运算符的优先级
- 运算符:是用来在程序运行时执行数学或逻辑运算的
- 优先级:就是当多个运算符出现在同一个表达式中时,先执行哪个运算符。
- Go语言中大部分运算符的优先级和数学中是一样的,
- 推荐使用 括号
优先级 | 分类 | 运算符 | 结合性 |
---|---|---|---|
1 | 逗号运算符 | , | 从左到右 |
2 | 赋值运算符 | =、+=、-=、*=、/=、 %=、 >=、 <<=、&=、^=、|= | 从右到左 |
3 | 逻辑或 | || | 从左到右 |
4 | 逻辑与 | && | 从左到右 |
5 | 按位或 | | | 从左到右 |
6 | 按位异或 | ^ | 从左到右 |
7 | 按位与 | & | 从左到右 |
8 | 相等/不等 | ==、!= | 从左到右 |
9 | 关系运算符 | <、<=、>、>= | 从左到右 |
10 | 位移运算符 | <<、>> | 从左到右 |
11 | 加法/减法 | +、- | 从左到右 |
12 | 乘法/除法/取余 | *(乘号)、/、% | 从左到右 |
13 | 单目运算符 | !、*(指针)、& 、++、–、+(正号)、-(负号) | 从右到左 |
14 | 后缀运算符 | ( )、[ ]、-> | 从左到右 |
注意:
- 优先级级别越大的,先运算,记不住的就加括号
- 计算顺序从右到左的只有两个:赋值运算符、单目运算符
大概运算符
- 括号,++,–
- 单目运算
- 算数运算符
- 移位运算
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 逗号
跳转