Sobes.tech
Middle

Čo je to defer a na čo sa používa? V akom poradí sa vykonávajú defer volania, ak ich je viac v jednej funkcii?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa kľúčové slovo defer používa na odložené volanie funkcie: bude vykonané po dokončení obklopujúcej funkcie, ale pred jej návratom. To je užitočné na uvoľnenie zdrojov, zatvorenie súborov, odomknutie mutexov a iné operácie čistenia.

Ak je v jednej funkcii viacero volaní defer, sú vykonané v opačnom poradí, než boli deklarované (zásobník). To znamená, že posledný deklarovaný defer bude vykonaný ako prvý.

Príklad:

func priklad() {
    defer fmt.Println("Prvý defer")
    defer fmt.Println("Druhý defer")
    fmt.Println("V tele funkcie")
}
// Výstup bude:
// V tele funkcie
// Druhý defer
// Prvý defer