Sobes.tech
Junior — Middle

Můžete vysvětlit princip fungování a použití konstrukce defer v jazyce Go?

sobes.tech AI

Odpověď od AI

V jazyce Go se klíčové slovo defer používá k odložení volání funkce: ta bude provedena v okamžiku opuštění aktuální funkce, bez ohledu na to, jakým způsobem k tomu dojde (normálně nebo kvůli chybě). To je užitečné pro uvolnění zdrojů, zavření souborů, odemknutí mutexů a další operace čištění.

Příklad:

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return err
    }
    defer file.Close() // soubor se zavře při opuštění funkce

    // práce se souborem
    return nil
}

Tímto způsobem defer pomáhá psát čistší a bezpečnější kód, zajišťuje provedení důležitých závěrečných akcí.