Middle
¿En qué orden se ejecutan las funciones diferidas (defer) en Go?
sobes.tech AI
Respuesta de la IA
Las funciones diferidas se ejecutan en orden inverso a su definición, es decir, LIFO (Last-In, First-Out).
package main
import "fmt"
func main() {
defer fmt.Println("primero") // Definido último
defer fmt.Println("segundo") // Definido penúltimo
defer fmt.Println("tercero") // Definido primero
}
Como resultado, al ejecutar este código se mostrará:
tercero
segundo
primero
Al salir del ámbito (función) donde se declaró defer, las funciones diferidas se llaman en orden inverso. Esto es útil para liberar recursos, cerrar archivos, desbloquear mutexes y otras operaciones de limpieza.