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