Sobes.tech
Middle

Wat is defer en waar wordt het voor gebruikt? In welke volgorde worden defer-aanroepen uitgevoerd als er meerdere in één functie zijn?

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 terugkeer ervan. Dit is handig voor het vrijmaken van bronnen, het sluiten van bestanden, het ontgrendelen van mutexen en andere opruimacties.

Als er meerdere defer-aanroepen in één functie zijn, worden ze uitgevoerd in de omgekeerde volgorde van hun declaratie (stapelvolgorde). Met andere woorden, de laatst gedeclareerde defer wordt eerst uitgevoerd.

Voorbeeld:

func voorbeeld() {
    defer fmt.Println("Eerste defer")
    defer fmt.Println("Tweede defer")
    fmt.Println("In de functielichaam")
}
// De uitvoer zal zijn:
// In de functielichaam
// Tweede defer
// Eerste defer