Sobes.tech
Junior — Middle

Можете ли да објасните принцип рада и примену конструкције defer у језику Go?

sobes.tech АИ

Одговор од АИ

U jeziku Go, ključna reč defer se koristi za odlaganje poziva funkcije: ona će biti izvršena u trenutku izlaska iz tekuće funkcije, bez obzira na to kako se taj izlazak dešava (normalno ili zbog greške). Ovo je korisno za oslobađanje resursa, zatvaranje fajlova, otključavanje mutexa i druge operacije čišćenja.

Primer:

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return err
    }
    defer file.Close() // fajl će se zatvoriti pri izlasku iz funkcije

    // rad sa fajlom
    return nil
}

Na ovaj način, defer pomaže u pisanju čišćeg i sigurnijeg koda, garantujući izvršenje važnih završnih radnji.