Middle
Cos'è defer in Go e in quale momento viene chiamato?
sobes.tech AI
Risposta dell'AI
In Go, la parola chiave defer viene utilizzata per chiamare una funzione in modo differito: verrà eseguita dopo che la funzione circostante si sarà completata, ma prima della sua uscita.
Questo è utile per liberare risorse, chiudere file, sbloccare mutex e altre operazioni di pulizia, garantendo che avvengano anche in caso di errori o panico.
Esempio:
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // il file verrà chiuso alla fine della funzione
// lavoro con il file
}
Qui, file.Close() verrà chiamato automaticamente all'uscita da readFile, indipendentemente da come termina la funzione.