算术运算符
二元运算符
字面形式 |
名称 |
解释 |
+ |
加法 |
两个运算数的类型必须相同并且为基本数值类型 |
- |
减法 |
两个运算数的类型必须相同并且为基本数值类型 |
* |
乘法 |
两个运算数的类型必须相同并且为基本数值类型 |
/ |
除法 |
两个运算数的类型必须相同并且为基本数值类型 |
% |
取余 |
两个运算数的类型必须相同并且为基本整数数值类型 |
位运算符
字面形式 |
名称 |
& |
位与 |
|
|
^ |
异或 |
&^ |
清位 |
<< |
左移位 |
>> |
右移位 |
一元运算符
字面形式 |
名称 |
解释 |
+ |
取正数 |
+n等价于0 + n |
- |
取负数 |
-n等价于0 - n |
^ |
位反 |
|
op=运算符
1 2 3 4 5 6 7 8 9 10 11
| var a, b int8 = 3, 5 a += b println(a) a *= a println(a) a /= b println(a) a %= b println(a) b <<= uint(a) println(b)
|
自增/自减运算符
go语言自增和自减运算符没有返回值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package main
func main() { a, b, c := 12, 1.2, 1+2i a++ b-- c++
}
|
字符串连接运算符
1 2 3 4
| println("Go" + "lang") var a = "Go" a += "lang" println(a)
|
布尔运算符
参与运算值必须是布尔类型
1 2 3 4 5
| // 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
|
比较运算符
字面形式 |
名称 |
== |
等于 |
!= |
不等于 |
< |
小于 |
<= |
小于或等于 |
> |
大于 |
>= |
大于或等于 |
运算符优先级
同一行中的操作符的优先级是一样的。优先级逐行递减。
1 2 3 4 5
| * / % << >> & &^ + - | ^ == != < <= > >= && ||
|
1 2 3 4 5
| // 优先级一样,从左到右计算 12 / 2 * 3
// 先计算4*4,再计算12+16 12 + 4 * 4
|