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