martes, 6 de noviembre de 2018

Operadores de asignación, asignación aritmética e incremento en Go

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

No hay comentarios:

Publicar un comentario