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.