Senior
Cos'è defer in Go? Cosa stamperà il codice con due defer?
sobes.tech AI
Risposta dell'AI
In Go, la parola chiave defer viene utilizzata per chiamare una funzione in modo differito: verrà eseguita dopo che la funzione circostante ha terminato, ma prima del suo ritorno.
Se ci sono più defer in una funzione, vengono eseguiti in ordine inverso rispetto alla loro dichiarazione (pila di chiamate).
Esempio:
package main
import "fmt"
func main() {
defer fmt.Println("Primo defer")
defer fmt.Println("Secondo defer")
fmt.Println("Codice principale")
}
L'output sarà:
Codice principale
Secondo defer
Primo defer
Cioè, prima viene eseguito il codice principale, poi le chiamate differite in ordine inverso.