Go 支持以下算术运算符:
| 运算符 | 示例 |
|---|---|
+ |
4 + 6 == 10 |
- |
15 - 10 == 5 |
* |
2 * 3 == 6 |
/ |
13 / 3 == 4 |
% |
13 % 3 == 1 |
在整数除法中,余数会被舍去(例如5 / 2 == 2)。
+运算符还能拼接字符串:"foo" + "bar" == "foobar"。
Go 不允许在不同数字类型之间进行算术运算:
x := 42
n := 2.0
value := n * x // invalid operation: n * x (mismatched types float64 and int)
操作数必须是同一类型,有时需要进行显式转换:
x := float64(42)
n := 2.0
value := n * x
每种运算符都有一种简写赋值形式,可以就地更新变量:
a := 1
a += 2 // same as a = a + 2 == 3
b := 2
b -= 2 // same as b = b - 2 == 0
c := 4
c *= 2 // same as c = c * 2 == 8
d := 8
d /= 2 // same as d = d / 2 == 4
e := 16
e %= 2 // same as e = e % 2 == 0
当自增语句(++)和自减语句(--)放在变量之后时,它们会把变量中存储的数值加 1 或减 1。
把它们放在变量之前则是语法错误。
a := 10
a++ // same as a += 1, a == 11
b := 10
b-- // same as b -= 1, b == 9
由于它们是语句,因此不会返回值。