运算符是告诉编译器执行某些操作的符号。以下列表描述了Golang中使用的不同运算符。
算术运算符用于执行常见的算术运算,例如加法,减法,乘法等。
这是Golang算术运算符的完整列表:
操作员 | 描述 | 例 | 结果 |
---|---|---|---|
+ | 加成 | x + y | x和y的总和 |
- | 减法 | - | 从另一个减去一个值 |
* | 乘法 | x * y | 两个值相乘 |
/ | 师 | x / y | x和y的商 |
% | 模量 | x%y | x的余数除以y |
++ | 增量 | x ++ | 将变量的值增加1 |
- | 减量 | X - | 将变量的值减1 |
下面的示例将向您展示这些算术运算符的作用:
package main
import "fmt"
func main() {
var x, y = 35, 7
fmt.Printf("x + y = %d\n", x+y)
fmt.Printf("- = %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)
}
运行上面的程序时,您应该看到以下输出:
C:\Golang>go run main.go
x + y = 42
x - y = 28
x * y = 245
x / y = 5
x mod y = 0
x++ = 36
y-- = 6
赋值运算符用于为变量赋值
分配 | 描述 | 例 |
---|---|---|
x = y | 分配 | x = y |
x + = y | 添加并分配 | x = x + y |
x-= y | 减去并分配 | x = x-y |
x * = y | 乘和分配 | x = x * y |
x / = y | 划分和分配商 | x = x / y |
x%= y | 划分和分配模数 | 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)
}
运行上面的程序时,您应该看到以下输出:
C:\Golang>go run main.go
= 25
+= 40
-= 25
*= 50
/= 4
%= 15
比较运算符用于比较两个值。
操作员 | 名称 | 例 | 结果 |
---|---|---|---|
== | 等于 | x == y | 如果x等于y,则为true |
!= | 不相等 | x!= y | 如果x不等于y,则为真 |
< | 少于 | x < y | 如果x小于y,则为true |
<= | 小于或等于 | x <= y | 如果x小于或等于y,则为true |
> | 比...更棒 | x > y | 如果x大于y,则为true |
>= | 大于或等于 | x >= y | 如果x大于或等于y,则为true |
以下示例将向您展示这些比较运算符的作用:
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)
}
运行上面的程序时,您应该看到以下输出:
C:\Golang>go run main.go
false
true
true
true
false
false
逻辑运算符用于确定变量或值之间的逻辑。
操作员 | 名称 | 描述 | 例 |
---|---|---|---|
&& | 逻辑与 | 如果两个语句都为true,则返回true | x < y && x > z |
|| | 逻辑或 | 如果其中一个语句为true,则返回true | x < y || x > z |
! | 逻辑不 | 反转结果,如果结果为true,则返回false | !(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))
}
运行上面的程序时,您应该看到以下输出:
C:\Golang>go run main.go
false
true
true
按位运算符用于比较(二进制)数字。
操作员 | 名称 | 描述 |
---|---|---|
& | 和 | 如果两个位均为1,则将每个位设置为1 |
| | 要么 | 如果两位之一为1,则将每个位设置为1 |
^ | 异或 | 如果两位中只有一位为1,则将每个位设置为1 |
<< | 零填充左移 | 向右推零,向左移动,让最左边的位掉落 |
>> | 签署右移 | 从左侧推入最左边的位,向右移动,让最右边的位掉落 |
以下示例将向您展示这些按位运算符的作用:
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)
}
运行上面的程序时,您应该看到以下输出:
C:\Golang\examples>go run main.go
x & y = 1
x | y = 73
x ^ y = 72
x << 1 = 18
x >> 1 = 4