算术运算符

  1. +-*/
  2. a++
  3. b--
  4. % // 求余数

++ — 在go语言中是语句而不是表达式,表达式可以放在语句右边,语句不能。

关系运算符

  1. ==
  2. !=
  3. > >=
  4. < <=

逻辑运算符

  1. && # 与
  2. || # 或
  3. ! # 非

按位运算符

  1. & # 按位与
  2. | # 按位或
  3. ^ # 按位异或:对应为不同数值时,结果为1
  4. << # 左移,数学上相当于乘以2
  5. >> # 右移,数学上相当于除以2

&^ 按位置零,右边为 1 则本位置零,否则原样输出。

a &^ b 是 a&(^b)的简写

  1. 1 &^ 0 -- 1
  2. 1 &^ 1 -- 0
  3. 0 &^ 1 -- 0
  4. 0 &^ 0 -- 0

赋值运算符

  1. = 直接赋值优先级最低
  2. += 相加后结果再赋值
  3. -= 相减后结果再赋值
  4. *+= 相乘后结果再赋值
  5. /= 相除后结果再赋值
  6. %= 取余后结果再赋值
  7. <<= 左移后结果再赋值
  8. >>= 右移后结果再赋值
  9. &= 按位与后结果再赋值
  10. ^= 按位异或后结果再赋值
  11. != 按位或后结果再赋值

其他运算符

  1. & 取地址运算符,针对变量
  2. * 取值运算符,针对指针

优先级 算数>关系>逻辑>赋值

  1. // 括号,结构体成员".",数组下标
  2. // 单目运算符
  3. // 逻辑运算符,逻辑非,取值,取地址,自增自减
  4. // 双目运算符
  5. 乘除 * / %
  6. 加减 + -
  7. 关系 == != > <
  8. 逻辑 && ||
  9. 赋值 == += -=