Sobes.tech
Senior

Co je to defer v Go? Co vypíše kód se dvěma defer?

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 návratem.

Pokud je ve funkci více defer, jsou vykonány v opačném pořadí, než byly deklarovány (zásobník volání).

Příklad:

package main

import "fmt"

func main() {
    defer fmt.Println("První defer")
    defer fmt.Println("Druhý defer")
    fmt.Println("Hlavní kód")
}

Výstup bude:

Hlavní kód
Druhý defer
První defer

To znamená, že nejprve se vykoná hlavní kód, a poté odložené volání v opačném pořadí.