Go - Operadores de Atribuição

A tabela a seguir lista todos os operadores de atribuição suportados pela linguagem Go -

Operador Descrição Exemplo
= Operador de atribuição simples, atribui valores de operandos do lado direito para operando do lado esquerdo C = A + B irá atribuir o valor de A + B em C
+ = Adicionar operador de atribuição AND, adiciona operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo C + = A é equivalente a C = C + A
- = Subtrai o operador de atribuição AND, subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo C - = A é equivalente a C = C - A
* = Operador de atribuição Multiply AND, multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo C * = A é equivalente a C = C * A
/ = Operador de atribuição de divisão AND, divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo C / = A é equivalente a C = C / A
% = Módulo E operador de atribuição, leva o módulo usando dois operandos e atribui o resultado ao operando esquerdo C% = A é equivalente a C = C% A
<< = Deslocamento à esquerda E operador de atribuição C << = 2 é igual a C = C << 2
>> = Deslocamento à direita E operador de atribuição C >> = 2 é igual a C = C >> 2
& = Operador de atribuição AND bit a bit C & = 2 é igual a C = C & 2
^ = OR exclusivo bit a bit e operador de atribuição C ^ = 2 é igual a C = C ^ 2
| = OR inclusivo bit a bit e operador de atribuição C | = 2 é igual a C = C | 2

Exemplo

Tente o exemplo a seguir para entender todos os operadores de atribuição disponíveis na linguagem de programação 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 )
}

Quando você compila e executa o programa acima, ele produz o seguinte resultado -

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