Go语言教程之边写边学:运算符
运算符是告诉编译器执行某些操作的符号。以下列表描述了 Golang 中使用的不同运算符。
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 按位运算符
Go 编程语言中的算术运算符
算术运算符用于执行常见的算术运算,例如加法、减法、乘法等。
以下是 Golang 算术运算符的完整列表:
| Operator | Description | Example |
|---|---|---|
| + | Addition | x + y |
| - | Subtraction | x - y |
| * | Multiplication | x * y |
| / | Division | x / y |
| % | Modulus | x % y |
| ++ | Increment | x++ |
| -- | Decrement | x-- |
以下示例将向您展示这些算术运算符的实际操作:
package main
import "fmt"
func main() {
var x, y = 35, 7
fmt.Printf("x + y = %d\n", x+y)
fmt.Printf("x - y = %d\n", x-y)
fmt.Printf("x * y = %d\n", x*y)
fmt.Printf("x / y = %d\n", x/y)
fmt.Printf("x mod y = %d\n", x%y)
x++
fmt.Printf("x++ = %d\n", x)
y--
fmt.Printf("y-- = %d\n", y)
}输出
x + y = 42
x - y = 28
x * y = 245
x / y = 5
x mod y = 0
x++ = 36
y-- = 6Go 编程语言中的赋值运算符
赋值运算符用于为变量赋值
| Assignment | Description | Example |
|---|---|---|
| x = y | Assign | x = y |
| x += y | Add and assign | x = x + y |
| x -= y | Subtract and assign | x = x - y |
| x *= y | Multiply and assign | x = x * y |
| x /= y | Divide and assign quotient | x = x / y |
| x %= y | Divide and assign modulus | x = x % y |
以下示例将向您展示这些赋值运算符的实际操作:
package main
import "fmt"
func main() {
var x, y = 15, 25
x = y
fmt.Println("= ", x)
x = 15
x += y
fmt.Println("+=", x)
x = 50
x -= y
fmt.Println("-=", x)
x = 2
x *= y
fmt.Println("*=", x)
x = 100
x /= y
fmt.Println("/=", x)
x = 40
x %= y
fmt.Println("%=", x)
}输出
= 25
+= 40
-= 25
*= 50
/= 4
%= 15
Go 编程语言中的比较运算符
比较运算符用于比较两个值。
| Operator | Name | Example |
|---|---|---|
| == | Equal | x == y |
| != | Not equal | x != y |
| < | Less than | x < y |
| <= | Less than or equal to | x <= y |
| > | Greater than | x > y |
| >= | Greater than or equal to | x >= y |
以下示例将向您展示这些比较运算符的实际操作:
package main
import "fmt"
func main() {
var x, y = 15, 25
fmt.Println(x == y)
fmt.Println(x != y)
fmt.Println(x < y)
fmt.Println(x <= y)
fmt.Println(x > y)
fmt.Println(x >= y)
}输出
false
true
true
true
false
falseGo 编程语言中的逻辑运算符
逻辑运算符用于确定变量或值之间的逻辑。
| Operator | Name | Description | Example |
|---|---|---|---|
| && | Logical And | 两个结果都为true时,返回true。 | x < y && x > z |
| || | Logical Or | 任意一个结果为true时,返回true。 | x < y || x > z |
| ! | Logical Not | 取反,结果为假,返回真。 | !(x == y && x > z) |
以下示例将向您展示这些逻辑运算符的实际操作:
package main
import "fmt"
func main() {
var x, y, z = 10, 20, 30
fmt.Println(x < y && x > z)
fmt.Println(x < y || x > z)
fmt.Println(!(x == y && x > z))
}输出
false
true
trueGo语言中的按位运算符
按位运算符用于比较(二进制)数字。
| Operator | Name | Description |
|---|---|---|
| & | AND | 都为1返回1 |
| | | OR | 任意一个为1返回1 |
| ^ | XOR | 只有一个是1时,返回1 |
| << | Zero fill left shift | 按指定移动的位数向左移动,移出位被丢弃,右边移出的空位一律补0 |
| >> | Signed right shift | 按指定移动的位数向右移动,移出位被丢弃,左边移出的空位一律补0 |
下面的示例将向您展示这些按位运算符的实际操作:
package main
import "fmt"
func main() {
var x uint = 9 //0000 1001
var y uint = 65 //0100 0001
var z uint
z = x & y
fmt.Println("x & y =", z)
z = x | y
fmt.Println("x | y =", z)
z = x ^ y
fmt.Println("x ^ y =", z)
z = x << 1
fmt.Println("x << 1 =", z)
z = x >> 1
fmt.Println("x >> 1 =", z)
}输出
x & y = 1
x | y = 73
x ^ y = 72
x << 1 = 18
x >> 1 = 4
苏公网安备
32050902101537号