Sobes.tech
Middle

Ce este operatorul defer în limbajul Go?

sobes.tech AI

Răspuns de la AI

Operatorul defer este utilizat pentru executarea întârziată a funcțiilor sau metodelor. Funcțiile marcate cu defer sunt executate chiar înainte de ieșirea din funcția care le conține.

Principiile de funcționare ale defer:

  • Se execută la ieșirea din funcția curentă, fie ea executare normală sau panică.
  • Mai multe defer într-o funcție se execută în ordine LIFO (Last-In, First-Out).
  • Este util pentru curățarea resurselor, cum ar fi închiderea fișierelor sau a conexiunilor de rețea.

Exemplu de utilizare:

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("Se deschide fișierul.")

	file, err := os.Open("example.txt")
	if err != nil {
		// Tratarea erorii
		return
	}

	// Închiderea întârziată a fișierului
	defer file.Close()
	defer fmt.Println("Fișierul va fi închis.") // Acest defer va fi executat primul (LIFO)

	fmt.Println("Se procesează fișierul...")

	// Lucru suplimentar cu fișierul
}

Ieșirea programului:

Se deschide fișierul.
Se procesează fișierul...
Fișierul va fi închis.