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
var name string = "Ada"
var age int = 36
var active boolCuando 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:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolLos tipos básicos que conocerás de inmediato
| Tipo | Ejemplo | Notas |
|---|---|---|
| CÓDIGOPH0 | CÓDIGOPH1 | el tamaño depende de la CPU (32 o 64 bits) |
| CÓDIGOPH2 | CÓDIGOPH3 | predeterminado para literales decimales |
| CÓDIGOPH4 | CÓDIGOPH5 | UTF-8, inmutable |
| CÓDIGOPH6 | CÓDIGOPH7, CÓDIGOPH8 | no hay "verdad", sólo bool puro |
| CÓDIGOPH9 | CÓDIGOPH10 | alias de 421, representa un punto de código Unicode |
| CÓDIGOPH12 | CÓDIGOPH13 | alias 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:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemVariables 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.
func main() {
x := 42
// error: x declared and not used
}Para silenciar la regla temporalmente utiliza _ (identificador en blanco):
_ = xTu turno
Utilice var para declarar un nombre de variable de tipo cadena con valor 'Ada' e imprímalo.
Mostrar pista
La forma larga es `var <name> <type> = <value>`.
Solución disponible después de 3 intentos
En una sola línea, use := para asignar 36 a la edad y 'Roma' a la ciudad, luego imprima ambos.
Mostrar pista
Puedes asignar múltiples variables a la vez: `a, b := 1, "due"`.
Solución disponible después de 3 intentos
¿Cuál de estas declaraciones produce un error de compilación si se coloca FUERA de una función?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Resumen
- Tipo estático, inferido automáticamente por
:=o declarado convar. :=sólo funciones internas; a nivel de paquete solovar/const.- Variables e importaciones no utilizadas = error de compilación: use
_para silenciarlas. int/float64/string/boolcubren el 90% de los casos cotidianos.