Middle
Cos'è defer e a cosa serve? In quale ordine vengono eseguite le chiamate defer se ce ne sono più di una in una funzione?
sobes.tech AI
Risposta dell'AI
In Go, la parola chiave defer viene utilizzata per chiamare una funzione in modo differito: essa verrà eseguita dopo che la funzione circostante ha terminato, ma prima del suo ritorno. Questo è utile per liberare risorse, chiudere file, sbloccare mutex e altre operazioni di pulizia.
Se in una funzione ci sono più chiamate a defer, vengono eseguite in ordine inverso rispetto alla loro dichiarazione (ordine di pila). In altre parole, l'ultimo defer dichiarato verrà eseguito per primo.
Esempio:
func esempio() {
defer fmt.Println("Primo defer")
defer fmt.Println("Secondo defer")
fmt.Println("Nel corpo della funzione")
}
// L'output sarà:
// Nel corpo della funzione
// Secondo defer
// Primo defer