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.