Go语言运算符优先级,是描述在计算机运算计算表达式时执行运算的先后顺序。 先执行具有较高优先级的运算,然后执行较低优先级的运算。 例如,我们常说的先执行相乘和除,再执行加减运算。
Go 语言内置的运算符算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
其他运算符
下面我们来对应Go语言各个运算符,算术、关系、逻辑、按位、赋值和其他运算符的详细讲解。
一、Go语言 算术运算符
A10B20
+-*/%++--
二、Go语言 关系运算符
A10B20
==!=><>=<=
三、Go语言 逻辑运算符
A1B0
&&AND||OR!
四、Go语言 位运算符
&|^
p | q | p&q | p|q | p^q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
A = 60B = 13
A = 0011 1100 B = 0000 1101 ----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011
A=60B=13
ANDA&B120000 1100OR0011 1101XOR490011 0001A<<22401111 0000A>>20000 1111
五、Go语言 赋值运算符
Go语言支持以下赋值运算符:
C=A+BA+BC+=C+=AC=C+AC-=AC=C-AC*=AC=C*AC/=AC=C/AC%=AC=C%AC<<=2C=C<<2C>>=2C=C>>2C&=2C=C&2C^=2C=C^2OR
六、Go语言 其他运算符
sizeof? :
&aa*aa
Go语言中的运算符优先级
运算符优先级确定表达式中的分组。这会影响表达式的计算方式。某些运算符比其他运算符具有更高的优先级; 例如,乘法运算符比加法运算符有更高的优先级。
当同级别的运算符出现在同一个表达式中,从左到右的顺序计算,比如乘除一起,不管是乘在前面还是除在前面都是从左到右计算乘、除运算符。加减亦是如此。
x = 7 + 3 * 2x1320*+3 * 27
这里,具有最高优先级的运算符放在表的顶部,具有最低优先级的运算符出现在底部。 在表达式中,将首先计算较高优先级运算符。
分类 | 描述 | 关联性 |
---|---|---|
后缀 | ()[]->.++ -- | 左到右 |
一元 | + -!~++ --(type)*&sizeof | 右到左 |
乘法 | */ % | 左到右 |
加法 | + - | 左到右 |
移位 | <<>> | 左到右 |
关系 | <<=>>= | 左到右 |
相等 | ==!= | 左到右 |
按位AND | & | 左到右 |
按位XOR | ^ | 左到右 |
按位OR | | | 左到右 |
逻辑AND | && | 左到右 |
逻辑OR | || | 左到右 |
条件 | ?: | 右到左 |
分配 | =+=-=*=/= %=>>= <<= &= ^= |= | 右到左 |
逗号 | , | 左到右 |