Sobes.tech
Junior — Middle

È possibile avere più operatori defer all'interno di una singola funzione?

sobes.tech AI

Risposta dell'AI

Sì, in Go è possibile utilizzare più operatori defer all'interno di una stessa funzione. Tutti i chiamanti differiti verranno eseguiti in ordine inverso (LIFO) dopo che la funzione avrà terminato l'esecuzione. Questo è utile per liberare risorse, chiudere file, sbloccare mutex, ecc.

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