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ą.