Senior
Wat is defer in Go? Wat zal de code met twee defer tonen?
sobes.tech AI
Antwoord van AI
In Go wordt het sleutelwoord defer gebruikt om een functie uit te stellen: deze wordt uitgevoerd nadat de omringende functie is voltooid, maar vóór de return.
Als er meerdere defer-aanroepen in een functie zijn, worden ze uitgevoerd in de omgekeerde volgorde van hun declaratie (call stack).
Voorbeeld:
package main
import "fmt"
func main() {
defer fmt.Println("Eerste defer")
defer fmt.Println("Tweede defer")
fmt.Println("Hoofdcode")
}
De uitvoer zal zijn:
Hoofdcode
Tweede defer
Eerste defer
Dat betekent dat eerst de hoofdcode wordt uitgevoerd, gevolgd door de uitgestelde oproepen in omgekeerde volgorde.