Sobes.tech
Senior

Wat is de context in Go en waar is het voor nodig?

sobes.tech AI

Antwoord van AI

In Go is context een pakket en een type dat wordt gebruikt om gegevens en annuleringssignalen tussen goroutines en functies over te dragen. Het is nodig voor het beheren van de levensduur van operaties, vooral bij netwerkverzoeken en langdurige processen.

Belangrijkste functies van context:

  • Annuleren van een operatie (via context.CancelFunc) om het werk indien nodig te onderbreken.
  • Overdracht van tijdslimieten (tot wanneer de operatie moet worden voltooid).
  • Overdracht van waarden (bijvoorbeeld, verzoek-ID's) tussen functies.

Voorbeeld van gebruik:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

select {
case <-time.After(time.Second * 10):
    fmt.Println("operatie voltooid")
case <-ctx.Done():
    fmt.Println("operatie geannuleerd of timeout")
}

Op deze manier helpt context bij het controleren en coördineren van de uitvoering van asynchrone en langdurige operaties.