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位。 |