1.0、参考
The Go Programming Language Specification - Operators
1.1、算数运算符
运算符 | 运算 | 说明 | 示例 |
---|
+
| a + b
| 加法 | var x = 2
var y = x + 3
|
字符串连接 | var s = 'abc' + '123'
//s = 'abc123'
|
+a
| 取正 | var x = 2
var y = +x
|
-
| a - b
| 减法 | var x = 2
var y = x - 3
|
-a
| 取相反数 | var x = 2
var y = -x
|
*
| a * b
| 乘法 | var x = 2
var y = x * 3
|
/
| a / b
| 除法 | var x = 2
var y = x / 3
|
%
| a % b
| 取余 | var x = 2
var y = x % 3
|
++
| a++
| 自增1 | var x = 2
var y = x++
|
--
| a--
| 自减1 | var x = 2
var y = x--
|
注意 :
golang
中没有提供在其他语言中提供的**
符号,这是一个二元运算符,表达方式为a ** b
,golang
中要表达a ** b
,需要使用math.pow(a, b)
函数golang
中没有++a
和--a
操作
1.2、位运算符
运算符 | 运算 | 说明 | 示例 |
---|
&
| a & b
| 按位与 | var x = 2
var y = x & 3
|
&a
| 取地址符 | var name string
fmt.Scanf("%s", &name)
|
|
| a | b
| 按位或 | var x = 2
var y = x | 3
|
^
| a ^ b
| 按位异或 | var x = 2
var y = x ^ 3
|
&^
| a &^ b
| 清零a中ab都为1的位 | var x = 2
var y = x &^ 3
|
<<
| a << b
| 左移b 位 | var x = 2
x = x << 3
|
>>
| a >> b
| 右移b 位 | var x = 2
x = x >> 3
|
1.3、赋值运算符
运算符 | 运算 | 相当于 | 示例 |
---|
=
| var a = VALUE
| | var x = 2
var y = x + 3
|
:=
| a := b
|
| x := 2
|
+=
| a += b
| a = a + b
| var x = 2
x += 3
|
-=
| a -= b
| a = a - b
| var x = 2
x -= 3
|
*=
| a *= b
| a = a * b
| var x = 2
x *= 3
|
/=
| a /= b
| a = a / b
| var x = 2
x /= 3
|
%=
| a %= b
| a = a % b
| var x = 2
x %= 3
|
&=
| a &= b
| a = a & b
| var x = 2
x &= 3
|
|=
| a |= b
| a = a | b
| var x = 2
x |= 3
|
^=
| a ^= b
| a = a ^ b
| var x = 2
x ^= 3
|
&^=
| a &^= b
| a = a &^ b
| var x = 2
x &^= 3
|
<<=
| a <<= b
| a = a << b
| var x = 2
x <<= 3
|
>>=
| a >>= b
| a = a >> b
| var x = 2
x >>= 3
|
1.4、关系运算符
运算符 | 运算 | 说明 |
---|
==
| a == b
| 等于 |
!=
| a != b
| 不等于 |
<
| a < b
| 小于 |
<=
| a <= b
| 小于或等于 |
>
| a > b
| 大于 |
>=
| a >= b
| 大于或等于 |
1.5、条件运算符
注意 :下面的这种三目条件运算符在golang
中不被支持。
condition ? expression1 : expression2
1.6、逻辑运算符
运算符 | 运算 | 说明 | 示例 |
---|
&&
| a && b
| 逻辑与 | (a > 5) && true
(cmd == nil) && true
|
||
| a || b
| 逻辑或 | (a > 5) || true
(cmd == nil) || true
|
!
| !a
| 逻辑非 | ! (a > 5)
|