Sobes.tech
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 defer en 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.