Middle
¿Qué es el operador defer en el lenguaje Go?
sobes.tech AI
Respuesta de la IA
El operador defer se utiliza para ejecutar funciones o métodos de forma diferida. Las funciones marcadas con defer se ejecutan justo antes de que la función que las contiene finalice.
Principios de funcionamiento de defer:
- Se ejecuta al salir de la función actual, ya sea por ejecución normal o por pánico.
- Múltiples
deferen una misma función se ejecutan en orden LIFO (Last-In, First-Out). - Es útil para limpiar recursos, como cerrar archivos o conexiones de red.
Ejemplo de uso:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Abriendo el archivo.")
file, err := os.Open("example.txt")
if err != nil {
// Manejo del error
return
}
// Cierre diferido del archivo
defer file.Close()
defer fmt.Println("El archivo será cerrado.") // Este defer se ejecutará primero (LIFO)
fmt.Println("Procesando el archivo...")
// Trabajo adicional con el archivo
}
Salida del programa:
Abriendo el archivo.
Procesando el archivo...
El archivo será cerrado.