与其他主要编程语⾔的差异:
&^ 按位置零
,右边为 1 则本位置零,否则原样输出
```
1 &^ 0 -- 1
1 &^ 1 -- 0
0 &^ 1 -- 0
0 &^ 0 -- 0
```
## 算术运算符
~~~
a++
b--
% 求余数
~~~
> ++ -- 在go语言中是语句而不是表达式,表达式可以放在语句右边,语句不能。
## 关系运算符
~~~
==
!=
> >=
< <=
~~~
## 逻辑运算符
~~~
&& # 与
|| # 或
! # 非
~~~
## 按位运算符
~~~
& # 按位与
| # 按位或
^ # 按位异或:对应为不同数值时,结果为1
<< # 左移,数学上相当于乘以2
>> # 右移,数学上相当于除以2
~~~
## 赋值运算符
~~~
= 直接赋值优先级最低
+= 相加后结果再赋值
-= 相减后结果再赋值
*+= 相乘后结果再赋值
/= 相除后结果再赋值
%= 取余后结果再赋值
<<= 左移后结果再赋值
>>= 右移后结果再赋值
&= 按位与后结果再赋值
^= 按位异或后结果再赋值
!= 按位或后结果再赋值
~~~
## 其他运算符
~~~go
& 取地址运算符,针对变量
* 取值运算符,针对指针
~~~
## 优先级 算数>关系>逻辑>赋值
```go
// 括号,结构体成员".",数组下标
// 单目运算符
// 逻辑运算符,逻辑非,取值,取地址,自增自减
// 双目运算符
乘除 * / %
加减 + -
关系 == != > <
逻辑 && ||
赋值 == += -=
```