Sobes.tech
Senior

¿Qué es defer en Go? ¿Qué mostrará el código con dos defer?

sobes.tech AI

Respuesta de la IA

En Go, la palabra clave defer se usa para llamar a una función de manera diferida: se ejecutará después de que la función envolvente haya terminado, pero antes de que retorne.

Si hay varias declaraciones defer en una función, se ejecutan en orden inverso a su declaración (como una pila de llamadas).

Ejemplo:

package main

import "fmt"

func main() {
    defer fmt.Println("Primer defer")
    defer fmt.Println("Segundo defer")
    fmt.Println("Código principal")
}

La salida será:

Código principal
Segundo defer
Primer defer

Es decir, primero se ejecuta el código principal, y luego las llamadas diferidas en orden inverso.