Sobes.tech
Junior — Middle

Môžete vysvetliť princíp fungovania a použitie konštrukcie defer v jazyku Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa kľúčové slovo defer používa na odložené volanie funkcie: tá bude vykonaná v momente opustenia aktuálnej funkcie, bez ohľadu na to, ako presne k tomu dôjde (normálne alebo kvôli chybe). To je užitočné na uvoľnenie zdrojov, zatváranie súborov, odomykanie mutexov a iné operácie čistenia.

Príklad:

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

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

Týmto spôsobom defer pomáha písať čistejší a bezpečnejší kód, zabezpečuje vykonanie dôležitých záverečných akcií.