在 Go 语言中,运算符用于执行各种操作。Go 支持以下几类运算符:
算术运算符用于执行基本的数学运算,如加法、减法、乘法和除法。
运算符 | 描述 | 示例 |
---|---|---|
+ |
加法 | a + b |
- |
减法 | a - b |
* |
乘法 | a * b |
/ |
除法 | a / b |
% |
取余 | a % b |
++ |
自增 | a++ |
-- |
自减 | a-- |
package main
import "fmt"
func main() {
a := 10
b := 3
fmt.Println("a + b =", a + b)
fmt.Println("a - b =", a - b)
fmt.Println("a * b =", a * b)
fmt.Println("a / b =", a / b)
fmt.Println("a % b =", a % b)
a++
fmt.Println("a++ =", a)
b--
fmt.Println("b-- =", b)
}
关系运算符用于比较两个值,结果是布尔值 (true
或 false
)。
运算符 | 描述 | 示例 |
---|---|---|
== |
等于 | a == b |
!= |
不等于 | a != b |
> |
大于 | a > b |
< |
小于 | a < b |
>= |
大于等于 | a >= b |
<= |
小于等于 | a <= b |
package main
import "fmt"
func main() {
a := 10
b := 20
fmt.Println("a == b =", a == b)
fmt.Println("a != b =", a != b)
fmt.Println("a > b =", a > b)
fmt.Println("a < b =", a < b)
fmt.Println("a >= b =", a >= b)
fmt.Println("a <= b =", a <= b)
}
逻辑运算符用于连接两个或多个条件,结果是布尔值。
运算符 | 描述 | 示例 | ||||
---|---|---|---|---|---|---|
&& |
逻辑与 | a && b |
||||
` | ` | 逻辑或 | `a | b` | ||
! |
逻辑非 | !a |
package main
import "fmt"
func main() {
a := true
b := false
fmt.Println("a && b =", a && b)
fmt.Println("a || b =", a || b)
fmt.Println("!a =", !a)
}
位运算符用于按位操作数。
运算符 | 描述 | 示例 | ||
---|---|---|---|---|
& |
位与 | a & b |
||
` | ` | 位或 | `a | b` |
^ |
位异或 | a ^ b |
||
<< |
左移 | a << b |
||
>> |
右移 | a >> b |
package main
import "fmt"
func main() {
a := 60 // 60 = 0011 1100
b := 13 // 13 = 0000 1101
fmt.Println("a & b =", a & b) // 12 = 0000 1100
fmt.Println("a | b =", a | b) // 61 = 0011 1101
fmt.Println("a ^ b =", a ^ b) // 49 = 0011 0001
fmt.Println("a << 2 =", a << 2) // 240 = 1111 0000
fmt.Println("a >> 2 =", a >> 2) // 15 = 0000 1111
}
赋值运算符用于将右侧的值赋给左侧的变量。
运算符 | 描述 | 示例 | ||
---|---|---|---|---|
= |
简单赋值 | a = b |
||
+= |
加后赋值 | a += b |
||
-= |
减后赋值 | a -= b |
||
*= |
乘后赋值 | a *= b |
||
/= |
除后赋值 | a /= b |
||
%= |
取余后赋值 | a %= b |
||
<<= |
左移后赋值 | a <<= b |
||
>>= |
右移后赋值 | a >>= b |
||
&= |
位与后赋值 | a &= b |
||
` | =` | 位或后赋值 | `a | = b` |
^= |
位异或后赋值 | a ^= b |
package main
import "fmt"
func main() {
a := 10
b := 5
a += b // a = a + b
fmt.Println("a += b:", a)
a -= b // a = a - b
fmt.Println("a -= b:", a)
a *= b // a = a * b
fmt.Println("a *= b:", a)
a /= b // a = a / b
fmt.Println("a /= b:", a)
a %= b // a = a % b
fmt.Println("a %= b:", a)
}
Go 语言中还有一些特殊的运算符,比如指针运算符和复合运算符。
运算符 | 描述 | 示例 |
---|---|---|
& |
取地址 | &a |
* |
指针解引用 | *p |
package main
import "fmt"
func main() {
a := 10
p := &a // 取变量 a 的地址
fmt.Println("a:", a)
fmt.Println("p:", p)
fmt.Println("*p:", *p) // 解引用,获取 p 指向的值
*p = 20 // 通过指针修改 a 的值
fmt.Println("a:", a)
}
Go 语言提供了丰富的运算符,可以进行各种操作。理解和掌握这些运算符的用法,是编写高效 Go 代码的基础。通过上述示例,可以对 Go 语言中的各类运算符有一个全面的了解,并能在实际编程中灵活运用。
原文链接:codingdict.net