Middle
In quale ordine vengono eseguite le funzioni differite (defer) in Go?
sobes.tech AI
Risposta dell'AI
Le funzioni differite vengono eseguite in ordine inverso a quello in cui sono state definite, cioè LIFO (Last-In, First-Out).
package main
import "fmt"
func main() {
defer fmt.Println("primo") // Definito per ultimo
defer fmt.Println("secondo") // Definito penultimo
defer fmt.Println("terzo") // Definito primo
}
Come risultato, l'esecuzione di questo codice stamperà:
terzo
secondo
primo
Al termine del scope (funzione) in cui è stato dichiarato defer, le funzioni differite vengono chiamate in ordine inverso. Questo è utile per liberare risorse, chiudere file, sbloccare mutex e altre operazioni di pulizia.