Saltar al contenido principal
eLearner.app
Módulo 1 · Lección 1 de 51/50 en el curso~10 min
Lecciones del módulo (1/5)

Variables y tipos

En Go cada variable tiene un tipo estático conocido por el compilador: una vez declarada, una variable no puede cambiar de tipo. Esta rigidez, muy diferente desde JavaScript o Python: es el precio que paga para obtener tiempo de compilación errores en lugar de errores de tiempo de ejecución, binarios pequeños y predecibles rendimiento.

Dos formas de declaración

var con tipo explícito

Go
var name string = "Ada"
var age int = 36
var active bool

Cuando se omite el valor (como en var active bool) la variable recibe el valor cero de su tipo; volveremos a esto en la próxima lección.

Declaración corta :=

Dentro de una función puedes usar :=, que infiere el tipo a partir del expresión de la derecha. Es la forma idiomática y la que usarás. El 90% del tiempo:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

Los tipos básicos que conocerás de inmediato

TipoEjemploNotas
CÓDIGOPH0CÓDIGOPH1el tamaño depende de la CPU (32 o 64 bits)
CÓDIGOPH2CÓDIGOPH3predeterminado para literales decimales
CÓDIGOPH4CÓDIGOPH5UTF-8, inmutable
CÓDIGOPH6CÓDIGOPH7, CÓDIGOPH8no hay "verdad", sólo bool puro
CÓDIGOPH9CÓDIGOPH10alias de 421, representa un punto de código Unicode
CÓDIGOPH12CÓDIGOPH13alias de 424

También existen int8/16/32/64, uint8/16/32/64, float32 y complex64/128. para cuando necesite tamaños precisos (análisis binario, interoperabilidad, etc.).

Múltiples declaraciones

Puede declarar varias variables con un bloque var o un := en plural:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

Variables declaradas pero no utilizadas

Go es estricto: una variable declarada y nunca utilizada es una compilación error, no una advertencia. Lo mismo se aplica a los import no utilizados.

Go
func main() {
    x := 42
    // error: x declared and not used
}

Para silenciar la regla temporalmente utiliza _ (identificador en blanco):

Go
_ = x

Tu turno

Ejercicio#go.m1.l1.e1
Intentos: 0Cargando...

Utilice var para declarar un nombre de variable de tipo cadena con valor 'Ada' e imprímalo.

Cargando editor...
Mostrar pista

La forma larga es `var <name> <type> = <value>`.

Solución disponible después de 3 intentos

Ejercicio#go.m1.l1.e2
Intentos: 0Cargando...

En una sola línea, use := para asignar 36 a la edad y 'Roma' a la ciudad, luego imprima ambos.

Cargando editor...
Mostrar pista

Puedes asignar múltiples variables a la vez: `a, b := 1, "due"`.

Solución disponible después de 3 intentos

Cuestionario#go.m1.l1.e3
Listo

¿Cuál de estas declaraciones produce un error de compilación si se coloca FUERA de una función?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
Opciones de respuesta

Resumen

  • Tipo estático, inferido automáticamente por := o declarado con var.
  • := sólo funciones internas; a nivel de paquete solo var/const.
  • Variables e importaciones no utilizadas = error de compilación: use _ para silenciarlas.
  • int/float64/string/bool cubren el 90% de los casos cotidianos.