Sobes.tech
Middle

Ce este defer și pentru ce este folosit? În ce ordine sunt executate apelurile defer dacă sunt mai multe într-o funcție?

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. Acest lucru este util pentru eliberarea resurselor, închiderea fișierelor, deblocarea mutexurilor și alte operațiuni de curățare.

Dacă într-o funcție există mai multe apeluri defer, acestea sunt executate în ordine inversă față de declarație (ordine de stivă). Cu alte cuvinte, ultimul defer declarat va fi executat primul.

Exemplu:

func exemplu() {
    defer fmt.Println("Primul defer")
    defer fmt.Println("Al doilea defer")
    fmt.Println("În corpul funcției")
}
// Ieșirea va fi:
// În corpul funcției
// Al doilea defer
// Primul defer