Go - 赋值运算符



下表列出了 Go 语言支持的所有赋值运算符 -

运算符 描述 示例
= 简单赋值运算符,将右侧操作数中的值分配给左侧操作数 C = A + B 会将 A + B 的值分配给 C
+= 添加 AND 赋值运算符,将右操作数添加到左操作数,并将结果分配给左操作数 C += A 等同于 C = C + A
-= Subtract AND 赋值运算符,它从左操作数中减去右操作数并将结果分配给左操作数 C -= A 等同于 C = C - A
*= 乘以 AND 赋值运算符,它将右操作数与左操作数相乘,并将结果分配给左操作数 C *= A 等同于 C = C * A
/= Divided AND 赋值运算符,它将左操作数与右操作数相除,并将结果分配给左操作数 C /= A 相当于 C = C / A
%= 模 AND 赋值运算符,它使用两个操作数取模并将结果分配给左操作数 C %= A 相当于 C = C % A
<<= 左移 AND 赋值运算符 C <<= 2 与 C = C << 2 相同
>>= 右移 AND 赋值运算符 C >>= 2 与 C = C >> 2 相同
&= 按位 AND 赋值运算符> C &= 2 等同于 C = C & 2
^= 按位排斥 OR 和赋值运算符 C ^= 2 与 C = C ^ 2 相同
|= 按位包含 OR 和赋值运算符 C |= 2 与 C = C |2

请尝试以下示例来了解 Go 编程语言中可用的所有赋值运算符 -


package main

import "fmt"

func main() {
	 	var a int = 21
	 	var c int

	 	c = 	a
	 	fmt.Printf("Line 1 - = 	Operator Example, Value of c = %d\n", c )

	 	c += 	a
	 	fmt.Printf("Line 2 - += Operator Example, Value of c = %d\n", c )

	 	c -= 	a
	 	fmt.Printf("Line 3 - -= Operator Example, Value of c = %d\n", c )

	 	c *= 	a
	 	fmt.Printf("Line 4 - *= Operator Example, Value of c = %d\n", c )

	 	c /= 	a
	 	fmt.Printf("Line 5 - /= Operator Example, Value of c = %d\n", c )

	 	c 	= 200;	

	 	c <<= 	2
	 	fmt.Printf("Line 6 - <<= Operator Example, Value of c = %d\n", c )

	 	c >>= 	2
	 	fmt.Printf("Line 7 - >>= Operator Example, Value of c = %d\n", c )

	 	c &= 	2
	 	fmt.Printf("Line 8 - &= Operator Example, Value of c = %d\n", c )

	 	c ^= 	2
	 	fmt.Printf("Line 9 - ^= Operator Example, Value of c = %d\n", c )

	 	c |= 	2
	 	fmt.Printf("Line 10 - |= Operator Example, Value of c = %d\n", c )
}

当您编译并执行上述程序时,它会产生以下结果——

Line 1 - = Operator Example, Value of c = 21
Line 2 - += Operator Example, Value of c = 42
Line 3 - -= Operator Example, Value of c = 21
Line 4 - *= Operator Example, Value of c = 441
Line 5 - /= Operator Example, Value of c = 21
Line 6 - <<= Operator Example, Value of c = 800
Line 7 - >>= Operator Example, Value of c = 200
Line 8 - &= Operator Example, Value of c = 0
Line 9 - ^= Operator Example, Value of c = 2
Line 10 - |= Operator Example, Value of c = 2