Introducción
En el artículo anterior vimos qué son las variables en Go.
Sin embargo, en un programa en Go, no todos los valores deben ser variables. Para representar valores fijos, inmutables y conocidos de antemano, Go introduce el concepto de constantes.
Las constantes en Go no son simplemente “variables que no cambian”. Tienen reglas, propiedades y capacidades propias que las hacen especialmente potentes y expresivas.
En este artículo veremos qué son las constantes en Go, cómo se declaran y en qué situaciones aportan claridad y seguridad al código.
Constantes en Go
Una constante es un identificador cuyo valor:
- Se fija en el momento de la compilación.
- No puede modificarse en ningún punto del programa.
- Representa un valor literal, no un espacio de memoria mutable.
Las constantes se declaran igual que las variables, pero usando la palabra reservada const en lugar de var.
Ejemplo mínimo:
const pi = 3.14159
A diferencia de una variable, pi no es un contenedor cuyo contenido pueda cambiar. Es simplemente un nombre asociado a un valor constante.
Diferencias entre variables y constantes
La diferencia no es solo semántica, es conceptual y técnica:
| Variables (var) | Constantes (const) |
|---|---|
| Pueden cambiar | No pueden cambiar |
| Ocupan memoria | No necesariamente ocupan memoria |
| El valor puede cambiar en ejecución | El valor se fija en compilación |
El comportamiento de las constantes en Go se vuelve aún más interesante cuando entran en juego los tipos de datos. No todas las constantes se comportan igual en ese aspecto, y esa diferencia es intencionada. Más adelante dedicaremos un artículo específico a explicar cómo y cuándo una constante queda tipada, y por qué este diseño es clave en el lenguaje.
Las constantes son inmutables
Intentar cambiar el valor de una constante provoca un error de compilación.
const year = 2025
year = 2026 // ERROR
El compilador devuelve:
cannot assign to year (neither addressable nor a map index expression)
Si cambiamos const por var, el código vuelve a ser válido:
var year int = 2025
year = 2026
Esto refuerza la idea central:
- Una constante no es una variable “especial”.
- Es un concepto distinto con reglas propias.
Bloques de constantes
Un bloque de constantes se declara así:
const (
MaxWorkers = 100
DefaultTimeout = 30
BufferSize = 65536
Version = "v2.3.1"
)
Cada línea del bloque es una declaración const completa e independiente.
Desde el punto de vista del compilador, esto es equivalente a:
const MaxWorkers = 100
const DefaultTimeout = 30
const BufferSize = 65536
const Version = "v2.3.1"
Su objetivo es organizar y agrupar valores relacionados, algo muy habitual en código Go real. Mejora la legibilidad, la cohesión y el mantenimiento del código.
Cuándo usar constantes
Usa constantes cuando:
- El valor no debe cambiar
- Representa una verdad del dominio
- Mejora la legibilidad del código
- Evita “números mágicos”
- Debe ser evaluado en compilación
No uses constantes cuando:
- El valor depende del estado del programa
- Necesitas mutabilidad
- El valor se construye dinámicamente
Resumen mental
- Las constantes no son variables inmutables: son valores de compilación.
- Se declaran con const.
- Deben inicializarse al declararse.
- Hacen el código más seguro, expresivo y mantenible.
Conclusión
Las constantes son una de las piezas más elegantes del diseño de Go: sencillas por fuera, pero con una semántica muy cuidada por dentro.
Con variables y constantes ya dominadas, ahora sí estás preparado para entender los tipos de datos sin atajos ni confusiones.
En el próximo artículo entraremos de lleno en el sistema de tipos de Go: qué tipos existen, cómo se comportan y por qué su diseño es una de las razones del éxito del lenguaje.
¡Nos vemos en el próximo artículo!.
Pulso la tecla ESC:wq!
Use the share button below if you liked it.
There's not much you can do without a CPU.