Sobes.tech
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.