运算符用于在程序运行时执行数学或逻辑运算。
表达式:a = b + c
其中:a,b,c叫操作数
=,+就是运算符
一、算数运算符
运算符 |
描述 |
+ |
相加 |
- |
相减 |
* |
相乘 |
/ |
相除 |
% |
求余 |
注意:在go语言中++
,--
是单独的语句,不能算作运算符,不支持在表达式中参与运算。
二、关系运算符
运算符 |
描述 |
> |
如果左边的值大于右边的值,则返回true ,否则返回false |
< |
如果左边的值小于右边的值,则返回true ,否则返回false |
>= |
如果左边的值大于或等于右边的值,则返回true ,否则返回false |
<= |
如果左边的值小于或等于右边的值,则返回true ,否则返回false |
== |
如果左边的值等于右边的值,则返回true ,否则返回false |
!= |
如果左边的值不等于右边的值,则返回true ,否则返回false |
三、逻辑运算符
运算符 |
描述 |
&& |
逻辑与AND,都true 则true ,一false 则false |
|| |
逻辑或OR,都false 则false ,一true 则true |
! |
逻辑非NOT,条件为true 则为false ,否则为true |
四、位运算
位运算符对整数在内存中的二进制位进行操作。
运算符 |
描述 |
示例A:1101,B:1001 |
& |
与运算,全1才1,否则为0 |
A&B = 1001 |
| |
或运算,有1则1,否则为0 |
A|B = 1101 |
^ |
异或运算。二元a^b 相同为0,不同为1;一元^a 按位取反 |
A^B = 0100 |
&^ |
位清空。a&^b 看b的值,为0则取a对应位上的数值,为1则0 |
A&^B = 0100 |
<< |
左移n位,高位丢弃,低位补0 |
A<<2 = 0100 |
>> |
右移n位,低位丢弃,高位补0 |
A>>2 = 0011 |
五、赋值运算
运算符 |
描述 |
= |
赋值 |
+= |
相加后赋值 |
-= |
相减后赋值 |
*= |
相乘后赋值 |
/= |
相除后赋值 |
%= |
求余后赋值 |
<<= |
左移后赋值 |
>>= |
右移后赋值 |
&= |
按位与后赋值 |
|= |
按位或后赋值 |
^= |
按位异或后赋值 |
六、运算符优先级
由上至下代表优先级由高到低
优先级 |
运算符 |
7 |
~ ! ++ -- |
6 |
* / % << >> & &^ |
5 |
+ - ^ |
4 |
== != < <= >= > |
3 |
<- |
2 |
&& |
1 |
|| |
可以使用括号来临时提升某个表达式的整体运算优先级。 |
|