Sobes.tech
Junior — Middle

¿Cuál es el papel del operador defer en el lenguaje Go y cuáles son sus ventajas?

sobes.tech AI

Respuesta de la IA

El operador defer en el lenguaje Go se utiliza para ejecutar una función retrasadamente hasta que la función envolvente finalice (generalmente para liberar recursos o realizar acciones finales).

Ventajas de defer:

  • Garantiza la ejecución del código al final de la función, incluso si la función termina con un error o una pánico.
  • Mejora la legibilidad del código, permitiendo escribir la liberación de recursos junto a su asignación.
  • Permite evitar la duplicación del código de limpieza en diferentes lugares de la función.

Ejemplo:

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

    // trabajo con el archivo
    return nil
}

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