Sobes.tech
Middle

Wat is defer in Go en wanneer wordt het aangeroepen?

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 voordat deze wordt verlaten.

Dit is handig voor het vrijmaken van bronnen, het sluiten van bestanden, het ontgrendelen van mutexen en andere opruimacties, en garandeert dat ze plaatsvinden, zelfs bij fouten of paniek.

Voorbeeld:

func readFile() {
    file, err := os.Open("file.txt")
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close() // het bestand wordt aan het einde van de functie gesloten

    // werken met het bestand
}

Hier wordt file.Close() automatisch aangeroepen bij het verlaten van readFile, ongeacht hoe de functie eindigt.