Sobes.tech
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čí.