Sobes.tech
Middle

Šta je defer u Go i u kom trenutku se poziva?

sobes.tech АИ

Одговор од АИ

U Go jeziku, ključna reč defer se koristi za odlaganje poziva funkcije: ona će biti izvršena nakon što se okružujuća funkcija završi, ali pre njenog izlaska.

Ovo je korisno za oslobađanje resursa, zatvaranje fajlova, otključavanje mutexa i druge operacije čišćenja, garantujući da će se desiti čak i u slučaju grešaka ili panike.

Primer:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // fajl će biti zatvoren na kraju funkcije

    // rad sa fajlom
}

Ovde će file.Close() biti automatski pozvan pri izlasku iz readFile, bez obzira na to kako funkcija završava.