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