高朗运算子


运算符是告诉编译器执行某些操作的符号。以下列表描述了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