全部运算符、分隔符,以及其他符号。
运算符结合律全部从左到右。
简单位运算演 。
0110 & 1011 = 0010 AND 都为 1。
0110 | 1011 = 1111 OR 少 个为 1。
0110 ^ 1011 = 1101 XOR 只能 个为 1。
0110 &^ 1011 = 0100 AND NOT 清除标志位。
标志位操作。
a := 0
a |= 1 << 2 // 0000100: 在 bit2 设置标志位。
a |= 1 << 6 // 1000100: 在 bit6 设置标志位
a = a &^ (1 << 6) // 0000100: 清除 bit6 标志位。
不支持运算符重载。尤其需要注意,"++"、"--" 是语句而非表达式。
n := 0
p := &n
// b := n++ // syntax error
// if n++ == 1 {} // syntax error
// ++n // syntax error
n++
*p++ // (*p)++
没有 "~",取反运算也 "^"。
x := 1
x, ^x // 0001, -0010