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-- = 6
Go 编程语言中的赋值运算符
赋值运算符用于为变量赋值
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
false
Go 编程语言中的逻辑运算符
逻辑运算符用于确定变量或值之间的逻辑。
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
true
Go语言中的按位运算符
按位运算符用于比较(二进制)数字。
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