Go语言中的运算符是用于对数据进行操作的符号或关键字,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符等。在本篇博客中,我们将介绍Go语言中的所有运算符,并给出它们的示例。
一、算术运算符
算术运算符用于对数据进行算术运算,包括加、减、乘、除、取模等。Go语言中的算术运算符如下:
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法运算 | 2 + 3 = 5,“hello” + “world” = “helloworld” |
- | 减法运算 | 5 - 2 = 3,2.5 - 1.2 = 1.3 |
* | 乘法运算 | 2 * 3 = 6,3.5 * 2.5 = 8.75 |
/ | 除法运算 | 6 / 3 = 2,10.5 / 3.0 = 3.5 |
% | 取模运算 | 10 % 3 = 1,12.5 % 3 = 0.5 |
二、赋值运算符
赋值运算符用于将一个值赋给一个变量,包括简单赋值、加等于、减等于、乘等于、除等于、取模等于等。Go语言中的赋值运算符如下:
运算符 | 描述 | 示例 |
---|---|---|
= | 简单赋值 | a = 10,b = “hello” |
+= | 加等于 | a += 5,b += “world”,等价于 a = a + 5,b = b + “world” |
-= | 减等于 | a -= 5,等价于 a = a - 5 |
*= | 乘等于 | a *= 2,等价于 a = a * 2 |
/= | 除等于 | a /= 3,等价于 a = a / 3 |
%= | 取模等于 | a %= 2,等价于 a = a % 2 |
<<= | 左移并赋值 | a <<= 2,等价于 a = a << 2 |
>>= | 右移并赋值 | a >>= 2,等价于 a = a >> 2 |
&= | 按位与并赋值 | a &= 5,等价于 a = a & 5 |
^= | 按位异或并赋值 | a ^= 5,等价于 a = a ^ 5 |
|= | 按位或并赋值 | a |= 5,等价于 a = a | 5 |
三、比较运算符
比较运算符用于比较两个值的大小或相等性,返回布尔值。Go语言中的比较运算符如下:
运算符 | 描述 | 示例 |
---|---|---|
== | 相等运算符,如果两个操作数相等,则返回true | 2 == 2,“hello” == “hello”,true == true |
!= | 不相等运算符,如果两个操作数不相等,则返回true | 2 != 3,“hello” != “world”,true != false |
> | 大于运算符,如果左操作数大于右操作数,则返回true | 3 > 2,“world” > “hello”,true > false |
< | 小于运算符,如果左操作数小于右操作数,则返回true | 2 < 3,“hello” < “world”,false < true |
>= | 大于等于运算符,如果左操作数大于或等于右操作数,则返回true | 3 >= 2,“world” >= “hello”,true >= false |
<= | 小于等于运算符,如果左操作数小于或等于右操作数,则返回true | 2 <= 3,“hello” <= “world”,false <= true |
四、逻辑运算符
逻辑运算符用于对布尔值进行逻辑运算,包括逻辑与、逻辑或、逻辑非等。Go语言中的逻辑运算符如下:
运算符 | 描述 | 示例 |
---|---|---|
&& | 逻辑与运算符 | true && false = false,5 > 2 && 3 > 1 = true |
|| | 逻辑或运算符 | true || false = true,5 > 2 || 3 < 1 = true |
! | 逻辑非运算符 | !true = false,!(5 > 2) = false |
五、位运算符
位运算符用于对二进制位进行操作,包括按位与、按位或、按位异或、左移、右移、按位非等。Go语言中的位运算符如下:
运算符 | 描述 | 示例 |
---|---|---|
& | 按位与运算符 | 5 & 3 = 1,101 & 011 = 001 |
| | 按位或运算符 | 5 | 3 = 7,101 | 011 = 111 |
^ | 按位异或运算符 | 5 ^ 3 = 6,101 ^ 011 = 110 |
<< | 左移运算符 | 5 << 2 = 20,101 << 2 = 10100 |
>> | 右移运算符 | 5 >> 2 = 1,101 >> 2 = 1 |
~ | 按位非运算符 | ~5 = -6,~101 = -110 |
以上是Go语言中所有运算符的介绍以及示例,希望对你有所帮助。需要注意的是,运算符的优先级不同,对表达式的计算会产生不同的影响,因此在编写程序时需要注意运算符的优先级,避免出现意想不到的错误。
运算符优先级
在Go语言中,不同的运算符具有不同的优先级,优先级高的运算符会先进行计算。如果表达式中有多个运算符,则会按照优先级的顺序进行计算。如果优先级相同,则按照从左到右的顺序计算。下面是Go语言中各个运算符的优先级,从高到低:
运算符 | 描述 | 优先级 |
---|---|---|
^ | 按位异或 | 7 |
* / % | 算术运算符 | 6 |
+ - | 算术运算符 | 5 |
<< >> | 移位运算符 | 4 |
& | 按位与 | 3 |
| | 按位或 | 2 |
== != | 比较运算符 | 1 |
&& | 逻辑与 | 0 |
|| | 逻辑或 | -1 |
需要注意的是,赋值运算符的优先级较低,为所有运算符中最低的,因此在表达式中使用赋值运算符时需要注意优先级的问题,可以使用括号来明确优先级。
同时还需要注意的是,虽然运算符的优先级规定了它们的计算顺序,但是在实际编写程序时,为了避免出现歧义,建议使用括号来明确表达式的计算顺序,使表达式的含义更加清晰明确。