算术运算符

运算符

术语

示例

结果

+


10 + 5

15

-


10 - 5

5

*


10 * 5

50

/


10 / 5

2

%

取模(取余)

10 % 3

1

++

后自增,没有前自增

a=0; a++

a=1


后自减,没有前自减

a=2; a–

a=1

在Go语言中,++ 与 – 是作为语句而并不是作为表达式。

关系运算符

运算符

术语

示例

结果

==

相等于

4 == 3

false

!=

不等于

4 != 3

true

<

小于

4 < 3

false

>

大于

4 > 3

true

<=

小于等于

4 <= 3

false

>=

大于等于

4 >= 1

true

逻辑运算符

运算符

术语

示例

结果

!


!a

如果a为假,则!a为真;如果a为真,则!a为假。

&&


a && b

如果a和b都为真,则结果为真,否则为假。

||


a || b

如果a和b有一个为真,则结果为真,二者都为假时,结果为假。

位运算符

运算符

术语

说明

示例

&

按位与

参与运算的两数各对应的二进位相与

60 & 13结果为12

|

按位或

参与运算的两数各对应的二进位相或

60 | 13 结果为61

^

异或

参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1

60 ^ 13 结果为240

<<

左移

左移n位就是乘以2的n次方。 左边丢弃,右边补0。

4 << 2 结果为16

>>

右移

右移n位就是除以2的n次方。 右边丢弃,左边补位。

4 >> 2 结果为1

赋值运算符

运算符

说明

示例

=

普通赋值

c = a + b 将 a + b 表达式结果赋值给 c

+=

相加后再赋值

c += a 等价于 c = c + a

-=

相减后再赋值

c -= a 等价于 c = c - a

*=

相乘后再赋值

c = a 等价于 c = c a

/=

相除后再赋值

c /= a 等价于 c = c / a

%=

求余后再赋值

c %= a 等价于 c = c % a

<<=

左移后赋值

c <<= 2 等价于 c = c << 2

>>=

右移后赋值

c >>= 2 等价于 c = c >> 2

&=

按位与后赋值

c &= 2 等价于 c = c & 2

^=

按位异或后赋值

c ^= 2 等价于 c = c ^ 2

|=

按位或后赋值

c |= 2 等价于 c = c | 2

其他运算符

运算符

术语

示例

说明

&

取地址运算符

&a

变量a的地址

*

取值运算符

*a

指针变量a所指向内存的值

运算符优先级

在Go语言中,一元运算符拥有最高的优先级,二元运算符的运算方向均是从左至右。

下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:

Go基础编程:运算符_运算符

Go基础编程:运算符_赋值_02