
| 字面形式 | 名称 | 解释 | 
| + | 加法 | 两个运算数的类型必须相同并且为基本数值类型 | 
| - | 减法 | 两个运算数的类型必须相同并且为基本数值类型 | 
| * | 乘法 | 两个运算数的类型必须相同并且为基本数值类型 | 
| / | 除法 | 两个运算数的类型必须相同并且为基本数值类型 | 
| % | 取余 | 两个运算数的类型必须相同并且为基本整数数值类型 | 
| 字面形式 | 名称 | 
| & | 位与 | 
|  |  | 
| ^ | 异或 | 
| &^ | 清位 | 
| « | 左移位 | 
| » | 右移位 | 
| 字面形式 | 名称 | 解释 | 
| + | 取正数 | +n等价于0 + n | 
| - | 取负数 | -n等价于0 - n | 
| ^ | 位反 |  | 
var a, b int8 = 3, 5
a += b
println(a) // 8
a *= a
println(a) // 64
a /= b
println(a) // 12
a %= b
println(a) // 2
b <<= uint(a)
println(b) // 20
go语言自增和自减运算符没有返回值
package main
func main() {
	a, b, c := 12, 1.2, 1+2i
	a++ // ok. <=> a += 1 <=> a = a + 1
	b-- // ok. <=> b -= 1 <=> b = b - 1
	c++ // ok.
	// 下面这些行编译不通过。
	/*
	_ = a++
	_ = b--
	_ = c++
	++a
	--b
	++c
	*/
}
println("Go" + "lang") // Golang
var a = "Go"
a += "lang"
println(a) // Golang
参与运算值必须是布尔类型
// x    y       x && y   x || y   !x      !y
true    true    true     true     false   false
true    false   false    true     false   true
false   true    false    true     true    false
false   false   false    false    true    true
| 字面形式 | 名称 | 
| == | 等于 | 
| != | 不等于 | 
| < | 小于 | 
| <= | 小于或等于 | 
| > | 大于 | 
| >= | 大于或等于 | 
同一行中的操作符的优先级是一样的。优先级逐行递减。
*   /   %   <<  >>  &   &^
+   -   |   ^
==  !=  <   <=  >   >=
&&
||
// 优先级一样,从左到右计算
12 / 2 * 3
// 先计算4*4,再计算12+16
12 + 4 * 4