Variables y constantes en Go/Golang

Francisco Suarez
GDSC Patagonia
Published in
5 min readSep 22, 2021

--

Las variables son un concepto clave en la programación, estas nos permiten almacenar información y poder hacer que cambien a lo largo del programa.

Mirando la parte mas técnica, decimos que estas tienen asignada una posición de memoria de almacenamiento y esta vinculada a un nombre, este ultimo es el que nosotros como programadores usamos para hacer referencia a la variable y poder usarla.

Pensemos en que tenemos que contar las personas que ingresan y salen de un aeropuerto, para eso podríamos tranquilamente generar una variable contador e incrementarla cada vez que contemos una persona y decrementarla cada vez que salen.

contadorPersonas := 0

Podemos pensar que el valor “0” esta vinculado a un nombre que es contadorPersonas, si nosotros llamamos a contadorPersonas automáticamente nos mostrara 0.

:= es la forma corta de declarar y asignar valor a una variable.

Go automáticamente infiere el tipo de dato y le asigna en este caso un tipo int

Miremos como podemos imprimir el valor 0 por consola.

Código

package main
import "fmt"

func main() {
contadorPersonas := 0
fmt.Println(contadorPersonas)
}

Salida

0

Si bien veremos expresiones matemáticas mas adelante, podemos realizar cualquiera de ella a la hora de imprimir algo por consola, por ejemplo sumemos uno al contadorPersonas.

Código

package main
import "fmt"

func main() {
contadorPersonas := 0
fmt.Println(contadorPersonas + 1)
}

Salida

1

Otra forma de realizar la misma operación seria directamente en la declaración de la variable, es decir declarar y asignar un valor al mismo tiempo/linea y que este sea el resultado de la operación.

Código

package main
import "fmt"

func main() {
contadorPersonas := 0 + 1
fmt.Println(contadorPersonas)
}

Salida

1

Las variables no solo almacenan valores enteros, podemos utilizarlas para guardar nombres o cualquier tipo de información que consideremos necesaria y que vaya a cambiar a lo largo del tiempo.

package main
import "fmt"

func main() {
nombre := "Francisco" // String
edad := 22 // Integer
peso := 80.25 // Float
estado := 10 > 5 // Boolean
// Y mas...
}
  • String
  • Integer
  • Float
  • Boolean

Son tipos de datos, al final de la lectura les dejo un articulo donde podrás encontrar todos los tipos de datos disponibles en Go.

Declaremos variables

Si bien arriba declaramos y asignamos valores a las variables, tenemos casos en los cuales el tipo de dato de una variable debe ser ESTRICTAMENTE uno, por ejemplo la edad, nadie puede tener una edad de tipo Float.

Esto es muy simple de hacer, siempre que necesitemos declarar un tipo de dato tenemos que poner el mismo seguido al nombre de la variable.

var edad int //Variable edad de tipo Integer
var edad int = 22 // Variable tipo Integer con asignación

También podemos asignarle un valor a esta variable mediante el signo igual.

edad = 22

Recordemos algo importante, si nosotros no indicamos un tipo de dato a la variable, automáticamente Go lo decide por nosotros.

Ahora miremos que pasa si nosotros tratamos de asignar un tipo de dato que no coincide con el de la variable, nosotros en el código de arriba tenemos declarada la variable edad de tipo Integer y vamos a tratar de asignarle un valor String.

Código

edad = "Juan"

Salida

cannot use "Juan" (type untyped string) as type int in assignment

Estos errores son producidos en tiempo de compilación, por lo cual tenemos que tener cuidado con los valores a la hora de trabajar con ellos.

Todos los tipos de datos que tenemos en Go tienen un valor llamado Zero Value o valor por defecto.

Código

package main

import "fmt"

func main() {
var nombre string
var edad int
var dinero float64
var estadoCivil bool
}

Si nosotros imprimimos estas variables por consola obtendremos su Zero Value.

Salida

var nombre string = ""
var edad int = 0
var dinero float64 = 0
var estadoCivil bool = false

Si venimos del mundo de JavaScript estos valores serian el famoso undefined o valor no definido.

Dentro de todo este mundo de las variables, es bueno saber las reglas y los estilos que se acostumbran en Go:

  • Las variables SIEMPRE son una sola palabra, es decir no podemos tener espacios en el nombramiento de las mismas.
  • Nunca podemos empezar el nombre de una variable con un numero pero si pueden contener uno en el nombramiento.
  • Podemos separar nombres mediante guiones bajos o nombrar con camelCase.
  • nombre es distinto que NOMBRE, es decir Go distingue mayúscula de minúscula.
  • Si declaramos una variable con su primera letra en Mayúscula indicamos a Go que esta es accesible por fuera del package en el cual esta declarada, es decir podríamos acceder a ella desde cualquier otro package.

Asignación múltiple en una linea

Go nos permite ahorrar tiempo y líneas de código, permitiendo declarar y asignar en la misma linea múltiples variables y valores.

Código

edad,nombre,apellido = 22, "Francisco", "Suarez"
fmt.Println(edad)
fmt.Println(nombre)
fmt.Println(apellido)

Salida

22
Francisco
Suarez

Alcance de variables

Dentro de la programación tenemos variables que son locales y otras que son globales, esto hace referencia donde podemos usar una variable y desde donde podemos acceder a ella.

package main

import "fmt"

var variableGlobal = "Alcance global"

func holaMundo(){
mensaje := "Hola mundo"
fmt.Println(mensaje)
}

func main() {
holaMundo()
fmt.Println(variableGlobal)
}

En este caso variableGlobal es accesible desde cualquier parte del programa, y mensaje solo es accesible dentro de la función holaMundo.

Constantes

Las constantes son y cumplen las mismas reglas que las variables, solo que como su nombre indica no pueden cambiar es algo constante.

Para declarar una constante usamos la palabra reservada const seguido del nombre un signo igual y el valor de la constante.

const dni = 41999222
fmt.Println(dni)
// Salida
41999222

En el caso que nosotros quisiéramos modificar una constante nos marcara por consola un error diciendo.

cannot assign to dni (declared const)

Por defecto una constante es de tipo untyped, para solucionar esto podemos especificar un tipo como hacemos con las variables.

const dni int = 41999222

🕹Recursos:

Espero que les sirva y puedan seguir aprendiendo Go/Golang!

Muchas gracias por leer!

Instagram | Twitter GDSC Patagonia | Twitter Francisco

--

--

Francisco Suarez
GDSC Patagonia

📚Computer Science Student 🚀 JavaScript Developer 🐱‍🚀 @reactjs @nodejs 🐱‍🏍 GDSC Lead🛸 and Contributor at MDN 🔥