Sobes.tech
Senior

Šta je defer u Go? Šta će prikazati kod sa dva defer?

sobes.tech АИ

Одговор од АИ

U jeziku Go, ključna reč defer se koristi za odlaganje poziva funkcije: ona će biti izvršena nakon što se završi okružujuća funkcija, ali pre njenog povratka.

Ako u funkciji postoji više defer, one se izvršavaju u obrnutom redosledu od onog u kojem su deklarisane (stog poziva).

Primer:

package main

import "fmt"

func main() {
    defer fmt.Println("Prvi defer")
    defer fmt.Println("Drugi defer")
    fmt.Println("Glavni kod")
}

Izlaz će biti:

Glavni kod
Drugi defer
Prvi defer

To znači da se prvo izvršava glavni kod, a zatim odloženi pozivi u obrnutom redosledu.