Sobes.tech
Junior — Middle

Ar galite paaiškinti defer konstrukcijos veikimo principą ir taikymą Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje, defer raktas žodis naudojamas funkcijos išdėstymui: ji bus vykdoma išėjus iš dabartinės funkcijos, nepriklausomai nuo to, kaip įvyksta išėjimas (įprastas ar dėl klaidos). Tai naudinga išteklių atlaisvinimui, failų uždarymui, mutexų atrakcinimui ir kitoms valymo operacijoms.

Pavyzdys:

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

    // darbai su failu
    return nil
}

Taip defer padeda rašyti švaresnį ir saugesnį kodą, garantuodamas svarbių užbaigimo veiksmų vykdymą.