Senior
Czym jest defer w Go? Co wyświetli kod z dwoma defer?
sobes.tech AI
Odpowiedź od AI
W języku Go słowo kluczowe defer służy do odłożonego wywołania funkcji — zostanie ona wykonana po zakończeniu funkcji otaczającej, ale przed jej zwróceniem.
Jeśli w funkcji znajduje się kilka defer, są one wykonywane w kolejności odwrotnej do ich deklaracji (stos wywołań).
Przykład:
package main
import "fmt"
func main() {
defer fmt.Println("Pierwszy defer")
defer fmt.Println("Drugi defer")
fmt.Println("Główny kod")
}
Wynik będzie wyglądał tak:
Główny kod
Drugi defer
Pierwszy defer
Oznacza to, że najpierw wykonywany jest główny kod, a następnie odłożone wywołania w kolejności odwrotnej.