Sobes.tech
Middle

In welke volgorde worden deferred functies in Go uitgevoerd?

sobes.tech AI

Antwoord van AI

Uitgestelde functies worden uitgevoerd in de omgekeerde volgorde van hun definitie, dat wil zeggen LIFO (Last-In, First-Out).

package main

import "fmt"

func main() {
	defer fmt.Println("eerste") // Gedefinieerd als laatste
	defer fmt.Println("tweede") // Gedefinieerd als voorlaatste
	defer fmt.Println("derde") // Gedefinieerd als eerste
}

Als resultaat wordt bij het uitvoeren van deze code weergegeven:

derde
tweede
eerste

Bij het verlaten van de scope (functie) waarin defer is gedeclareerd, worden de uitgestelde functies in omgekeerde volgorde aangeroepen. Dit is handig voor het vrijmaken van bronnen, het sluiten van bestanden, het ontgrendelen van mutexen en andere opruimacties.