Sobes.tech
Middle

¿Qué es defer y para qué se utiliza? ¿En qué orden se ejecutan las llamadas a defer si hay varias en una misma función?

sobes.tech AI

Respuesta de la IA

En Go, la palabra clave defer se utiliza para llamar a una función de forma diferida: se ejecutará después de que la función envolvente haya finalizado, pero antes de su retorno. Esto es útil para liberar recursos, cerrar archivos, desbloquear mutexes y otras operaciones de limpieza.

Si en una función hay varias llamadas a defer, se ejecutan en orden inverso a su declaración (orden de pila). Es decir, el último defer declarado se ejecutará primero.

Ejemplo:

func ejemplo() {
    defer fmt.Println("Primer defer")
    defer fmt.Println("Segundo defer")
    fmt.Println("En el cuerpo de la función")
}
// La salida será:
// En el cuerpo de la función
// Segundo defer
// Primer defer