datetime:2020/8/31 16:26
author:nzb
Go的运算符
1、算数运算符
运算符 | 说明 |
---|---|
+ | 相加 |
- | 相减 |
* | 相乘 |
/ | 相除 |
% | 求余= 被除数 - (被除数 / 除数) * 除数 |
fmt.Println(-10 % 3) // 结果是 -1
fmt.Println(10 % -3) // 结果是 1
1.2、注意事项
++
和--
在go语言中不是运算符除法注意,如果运算的数是整数,那么除后,去掉小数部分,保留整数部分,如果是浮点数,保留小数部分
在golang中, ++ 和 -- 只能单独使用,错误的写法如下
var i int = 8
var a int
a = i++ // 错误,i++只能单独使用
a = i-- // 错误,i--只能单独使用
- 同时在golang中,没有 ++i这样的操作
var i int = 1
++i // 错误
- 正确的写法
var i int = 1
i++ //正确
2、关系运算符
运算符 | 说明 |
---|---|
== | 检查两个值是否相等,如果相等返回True,否则返回False |
!= | 检查两个值是否不相等,如果不相等返回True,否则返回False |
> | 检查左边值是否大于右边值,如果是返回True,否则返回False |
>= | 检查左边值是否大于等于右边值,如果是返回True,否则返回False |
< | 检查左边值是否小于右边值,如果是返回True,否则返回False |
<= | 检查左边值是否小于等于右边值,如果是返回True,否则返回False |
3、逻辑运算符
运算符 | 说明 |
---|---|
&& | 逻辑 AND 运算符,如果两边的操作数都是True,则为True,否则为False |
|| | 逻辑 OR 运算符,如果两边的操作数有一个是True,则为True,否则为False |
! | 逻辑 NOT 运算符,如果条件为True,则为False,否则为True |
短路用法,逻辑与前面为False后面的就不执行了,逻辑或前面的为True后面的也不执行了
4、赋值辑运算符
运算符 | 说明 |
---|---|
= | 简单的赋值运算符,将一个表达式的值赋给一个左值(从右往左计算赋值) |
+= | 相加后再赋值 |
-= | 相减后再赋值 |
*= | 相乘后再赋值 |
/= | 相除后再赋值(跟上面算术运算符的注意事项相同) |
%= | 求余后再赋值 |
5、位运算符
位运算符对整数在内存中的二进制位进行操作
运算符 | 说明 |
---|---|
& | 参与运算的两数各对应的二进位相与。(两位均为1才为1) |
| | 参与运算的两数各对应的二进位相或。(两位有一个为1就为1) |
^ | 参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1,。(两位不一样则为1) |
<< | 左移n位就是乘以2的n次方。“a<<b”是把a的各二进位全部左移b位,高位丢弃,低位补0。 |
>> | 左移n位就是除以2的n次方。“a>>b”是把a的各二进位全部右移b位。 |