AD

¿Ya dominas lo básico? Un curso estructurado de Go es la vía rápida para dar el salto.

Ver cursos de Go en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐹Lecciones de Go
Lección 15 / 68

Funciones anónimas (closures)

En esta lección crearás una función sin nombre y la guardarás en una variable.

Se escribe func(x int) int { return x * 2 } y puede asignarse, pasarse como argumento o ejecutarse en el momento.

El código de ejemplo define una operación y la aplica a unos valores.

Lo que distingue a un closure es que captura las variables del entorno donde se creó, y las mantiene vivas aunque la función que las declaró haya terminado. Es lo que permite construir contadores o acumuladores sin variables globales.

Ahí está también la trampa clásica: en Go anterior a la versión 1.22, una closure creada dentro de un for capturaba la misma variable del bucle, así que todas veían el último valor. Era el error más repetido del lenguaje. Desde 1.22 cada vuelta tiene su propia variable y el problema desapareció, pero conviene conocerlo para leer código antiguo.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Go directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)