Senior
Ce este defer în Go? Ce va afișa codul cu două defer?
sobes.tech AI
Răspuns de la AI
În Go, cuvântul cheie defer este folosit pentru a apela o funcție întârziat: aceasta va fi executată după ce funcția înconjurătoare s-a încheiat, dar înainte de returnarea sa.
Dacă în funcție există mai multe defer, acestea sunt executate în ordinea inversă a declarației lor (stivă de apeluri).
Exemplu:
package main
import "fmt"
func main() {
defer fmt.Println("Primul defer")
defer fmt.Println("Al doilea defer")
fmt.Println("Cod principal")
}
Ieșirea va fi:
Cod principal
Al doilea defer
Primul defer
Adică, mai întâi se execută codul principal, apoi apelurile întârziate în ordine inversă.