字面形式 |
名称 |
解释 |
+ |
加法 |
两个运算数的类型必须相同并且为基本数值类型 |
- |
减法 |
两个运算数的类型必须相同并且为基本数值类型 |
* |
乘法 |
两个运算数的类型必须相同并且为基本数值类型 |
/ |
除法 |
两个运算数的类型必须相同并且为基本数值类型 |
% |
取余 |
两个运算数的类型必须相同并且为基本整数数值类型 |
字面形式 |
名称 |
& |
位与 |
|
|
^ |
异或 |
&^ |
清位 |
« |
左移位 |
» |
右移位 |
字面形式 |
名称 |
解释 |
+ |
取正数 |
+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