Junior — Middle
Cos'è l'ambito dell'operatore Defer in Go e come funziona?
sobes.tech AI
Risposta dell'AI
In Go, l'operatore defer viene utilizzato per chiamare una funzione in modo differito: questa verrà eseguita dopo che la funzione che la contiene è terminata.
L'ambito di defer è limitato alla funzione in cui è dichiarato. Ciò significa che la chiamata differita avverrà solo all'uscita dalla funzione corrente, anche se ci sono più blocchi annidati.
Esempio:
func esempio() {
defer fmt.Println("Chiamata differita")
fmt.Println("Codice principale")
}
// Chiamando esempio(), verrà prima stampato "Codice principale", poi "Chiamata differita".
Pertanto, defer è utile per liberare risorse, chiudere file, sbloccare mutex e altre operazioni che devono essere eseguite alla fine della funzione, indipendentemente da come questa termina.