Sobes.tech
Middle

Co je to defer v Go a kdy je volán?

sobes.tech AI

Odpověď od AI

V jazyce Go se klíčové slovo defer používá k odložení volání funkce: bude provedeno po dokončení obklopující funkce, ale před jejím ukončením.

To je užitečné pro uvolnění zdrojů, uzavření souborů, odemknutí mutexů a jiné operace čištění, zajišťující, že se provedou i při chybách nebo panice.

Příklad:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // soubor se uzavře na konci funkce

    // práce se souborem
}

Zde bude file.Close() automaticky zavoláno při opuštění readFile, bez ohledu na to, jak funkce skončí.