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.