Sobes.tech
Middle

Ce este defer în Go și în ce moment este apelat?

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 ieșirea sa.

Este util pentru eliberarea resurselor, închiderea fișierelor, deblocarea mutexurilor și alte operațiuni de curățare, asigurându-se că acestea vor avea loc chiar și în caz de erori sau panică.

Exemplu:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // fișierul se va închide la sfârșitul funcției

    // lucru cu fișierul
}

Aici, file.Close() va fi apelat automat la ieșirea din readFile, indiferent de modul în care se termină funcția.