Sobes.tech
Middle

¿Qué es defer en Go y en qué momento se llama?

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 terminado, pero antes de salir de ella.

Esto es útil para liberar recursos, cerrar archivos, desbloquear mutexes y otras operaciones de limpieza, garantizando que ocurran incluso si hay errores o pánicos.

Ejemplo:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // el archivo se cerrará al final de la función

    // trabajo con el archivo
}

Aquí, file.Close() será llamado automáticamente al salir de readFile, independientemente de cómo termine la función.