Sobes.tech
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.