Operadores de asignación
Un operador de asignación realiza la operación de asignar un valor a una variable o a una constante. Su sintaxis es la siguiente:
variable/constante operador valor
Mediante el operador =
igualamos (o asignamos) la variable o constante con el valor especificado a continuación.
var op1 int op1 = 1
El operador de asignación =
sólo permite asignar valores a variables o constantes que ya han sido declaradas previamente especificando su tipo, tal y como se representa en el ejemplo anterior. El valor a asignar debe ser del mismo tipo que el de la variable declarada.
Hay otro operador de asignación en Go, que permite asignar, por inferencia, un valor a una variable que se está declarando o creando en ese mismo momento, sin especificar su tipo.
pi := 3.14159
En este ejemplo declaramos la variable pi
y le asignamos el valor 3.14159
. El compilador de Go detecta automáticamente el tipo del valor que se asigna, e internamente, crea la variable pi
de tipo float64
para que tenga el mismo tipo que el dato. El compilador de Go, internamente realizaría la siguiente declaración y asignación:
var pi float64 = 3.14159
Operadores de incremento y decremento
Go posee dos operadores que permiten incrementar o decrementar el valor de una variable:
variable++ variable--
Estos operadores necesitan únicamente un operando, que sería la variable sobre la cual incrementar o decrementar en uno su valor.
Operadores de asignación aritmética
Un operador de asignación aritmética permite, en un único paso, realizar una operación aritmética sobre una variable y guardar el resultado en dicha variable.
variable operador valor
En la siguiente tabla se muestra la equivalencia de estos operadores:
variable += valor -> variable = variable + valor variable -= valor -> variable = variable - valor variable *= valor -> variable = variable * valor variable /= valor -> variable = variable / valor variable %= valor -> variable = variable % valor
He aquí un ejemplo:
var op1 int = 3 var op2 int = 2 op1 *= op2 // op1 = op1 * op2 -> 6
Ejemplo
package main import "fmt" func main() { // Asignacion normal var op1 int op1 = 1 // Asignacion por inferencia pi := 3.14159 fmt.Printf("pi: %T %v\n", pi, pi) // Incremento op1++ // op1=op1+1 >> 2 // Asignacion aritmetica op1 += 4 // op1=op1+4 >> 6 op1 -= 2 // op1=op1-2 >> 4 op1 *= 6 // op1=op1*6 >> 24 op1 /= 2 // op1=op1/2 >> 12 // Decremento op1-- // op1=op1-1 >> 11 fmt.Println("op1 = ", op1) // Aritmetica con una constante const DUP int = 2 op1 *= DUP // op1=op1*DUP >> 22 fmt.Println("op1 = ", op1) }
El resultado es el siguiente:
pi: float64 3.14159 op1 = 11 op1 = 22
Enlaces de interés
- The Go Programming Language Specification - Operators: https://golang.org/ref/spec#Operators
No hay comentarios:
Publicar un comentario