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.