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.