Junior — Middle
Aká je úloha operátora defer v jazyku Go a aké sú jeho výhody?
sobes.tech AI
Odpoveď od AI
Operátor defer v jazyku Go sa používa na odložené vykonanie funkcie do okamihu ukončenia okružujúcej funkcie (zvyčajne na uvoľnenie zdrojov alebo vykonanie záverečných akcií).
Výhody defer:
- Zaručuje vykonanie kódu na konci funkcie, aj keď funkcia skončí chybou alebo panikou.
- Zlepšuje čitateľnosť kódu tým, že umožňuje písať uvoľnenie zdrojov vedľa ich pridelenia.
- Umožňuje zabrániť duplikácii kódu na čistenie na rôznych miestach funkcie.
Príklad:
func readFile() error {
file, err := os.Open("file.txt")
if err != nil {
return err
}
defer file.Close() // súbor sa zatvorí pri ukončení funkcie
// práca so súborom
return nil
}
Tu bude file.Close() automaticky zavolané pri ukončení readFile, bez ohľadu na to, ako funkcia skončí.