Middle
¿Qué es un cierre en Go?
sobes.tech AI
Respuesta de la IA
El cierre en Go es una función que "recuerda" los valores del ámbito circundante, incluso después de que la función exterior ha terminado. Esto permite capturar variables externas y usarlas dentro de la función.
// Función exterior
func makeCounter() func() int {
count := 0 // Variable que será capturada
// Función interna (cierre)
return func() int {
count++ // Capturamos y modificamos count
return count
}
}
// Ejemplo de uso
func main() {
counter1 := makeCounter() // Creamos el primer cierre
fmt.Println(counter1()) // Salida: 1
fmt.Println(counter1()) // Salida: 2
counter2 := makeCounter() // Creamos un segundo cierre (con su propio count)
fmt.Println(counter2()) // Salida: 1
}