Sobes.tech
Junior

Kokią vaidmenį atlieka konstrukcija defer Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje defer konstrukcija naudojama funkcijos atidėjimui vykdyti — ji bus iškviesta išėjus iš dabartinės funkcijos, nepriklausomai nuo to, kaip įvyksta išėjimas (įprastai ar dėl klaidos).

Tai naudinga resursų atlaisvinimui, failų uždarymui, mutexų atrakcinimui ir kitoms valymo operacijoms.

Pavyzdys:

func readFile() error {
    file, err := os.Open("file.txt")
    if err != nil {
        return err
    }
    defer file.Close() // failas bus uždaromas išėjus iš funkcijos

    // darbai su failu
    return nil
}

Taip defer padeda garantuoti svarbių užbaigimo veiksmų vykdymą, gerindamas išteklių valdymą ir klaidų apdorojimą.