Go语言教程之边写边学:运算符

运算符是告诉编译器执行某些操作的符号。以下列表描述了 Golang 中使用的不同运算符。

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 按位运算符

 

Go 编程语言中的算术运算符

算术运算符用于执行常见的算术运算,例如加法、减法、乘法等。

以下是 Golang 算术运算符的完整列表:

OperatorDescriptionExample
+Additionx + y
-Subtractionx - y
*Multiplicationx * y
/Divisionx / y
%Modulusx % y
++Incrementx++
--Decrementx--

以下示例将向您展示这些算术运算符的实际操作:

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 编程语言中的赋值运算符

赋值运算符用于为变量赋值

AssignmentDescriptionExample
x = yAssignx = y
x += yAdd and assignx = x + y
x -= ySubtract and assignx = x - y
x *= yMultiply and assignx = x * y
x /= yDivide and assign quotientx = x / y
x %= yDivide and assign modulusx = 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 编程语言中的比较运算符

比较运算符用于比较两个值。

OperatorNameExample
==Equalx == y
!=Not equalx != y
<Less thanx < y
<=Less than or equal tox <= y
>Greater thanx > y
>=Greater than or equal tox >= 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 编程语言中的逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑。

OperatorNameDescriptionExample
&&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语言中的按位运算符

按位运算符用于比较(二进制)数字。

OperatorNameDescription
&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