Sobes.tech
Middle

Wat is de defer-operator in de Go-taal?

sobes.tech AI

Antwoord van AI

De operator defer wordt gebruikt om functies of methoden uit te stellen. Functies gemarkeerd met defer worden uitgevoerd net voordat de functie waarin ze zich bevinden wordt verlaten.

Principes van defer:

  • Wordt uitgevoerd bij het verlaten van de huidige functie, of dit nu normaal is of door een panic.
  • Meerdere defer in één functie worden uitgevoerd in LIFO-volgorde (Last-In, First-Out).
  • Handig voor het opruimen van bronnen, zoals het sluiten van bestanden of netwerkverbindingen.

Voorbeeld van gebruik:

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Println("Bestand wordt geopend.")

	file, err := os.Open("example.txt")
	if err != nil {
		// Foutafhandeling
		return
	}

	// Uitgestelde sluiting van het bestand
	defer file.Close()
	defer fmt.Println("Het bestand wordt gesloten.") // Deze defer wordt als eerste uitgevoerd (LIFO)

	fmt.Println("Bestand wordt verwerkt...")

	// Verdere verwerking met het bestand
}

Programma-uitvoer:

Bestand wordt geopend.
Bestand wordt verwerkt...
Het bestand wordt gesloten.