Middle
Čo je to defer v Go a kedy sa volá?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa kľúčové slovo defer používa na odložené volanie funkcie: bude vykonané po dokončení obklopujúcej funkcie, ale pred jej ukončením.
Je to užitočné na uvoľnenie zdrojov, zatvorenie súborov, odomknutie mutexov a iné operácie čistenia, zabezpečujúc, že sa vykonajú aj pri chybách alebo panike.
Príklad:
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // súbor sa zatvorí na konci funkcie
// práca so súborom
}
Tu bude file.Close() automaticky zavolané pri opustení readFile, bez ohľadu na to, ako funkcia skončí.