Sobes.tech
Senior

Mi az a defer a Go-ban? Mit fog kiírni a két deferrel rendelkező kód?

sobes.tech MI

Válasz az MI-től

Go nyelvben a defer kulcsszó egy függvény késleltetett hívására szolgál: a függvény a körülötte lévő függvény befejezése után, de annak visszatérése előtt kerül végrehajtásra.

Ha egy függvényben több defer van, azok a deklarálásuk fordított sorrendjében hajtódnak végre (hívási verem).

Példa:

package main

import "fmt"

func main() {
    defer fmt.Println("Első defer")
    defer fmt.Println("Második defer")
    fmt.Println("Fő kód")
}

A kimenet így fog kinézni:

Fő kód
Második defer
Első defer

Vagyis először a fő kód fut le, majd a késleltetett hívások fordított sorrendben.