Sobes.tech
Senior

Čo je to defer v Go? Čo vypíše kód s dvoma defer?

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.

Ak je vo funkcii viac defer, sú vykonané v opačnom poradí, než boli deklarované (zásobník volaní).

Príklad:

package main

import "fmt"

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

Výstup bude:

Hlavný kód
Druhý defer
Prvý defer

To znamená, že najskôr sa vykoná hlavný kód, a potom odložené volania v opačnom poradí.