Sobes.tech
Junior

Akú úlohu zohráva konštrukcia defer v jazyku Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa konštrukcia defer používa na odložené vykonanie funkcie — bude zavolaná pri opustení aktuálnej funkcie, bez ohľadu na to, ako presne k tomu dôjde (normálne alebo kvôli chybe).

Je to užitočné na uvoľnenie zdrojov, zatvorenie súborov, odomknutie mutexov a iné operácie čistenia.

Príklad:

func readFile() error {
    file, err := os.Open("file.txt")
    if err != nil {
        return err
    }
    defer file.Close() // súbor sa zatvorí pri opustení funkcie

    // práca so súborom
    return nil
}

Týmto defer pomáha zabezpečiť vykonanie dôležitých záverečných akcií, zlepšuje správu zdrojov a spracovanie chýb.