Sobes.tech
Junior — Middle

Hoe onderscheid je het gebruik van Context.TODO van Context.Background in de code, en in welke gevallen worden deze functies toegepast?

sobes.tech AI

Antwoord van AI

In Go geven context.Background() en context.TODO() een context terug, maar worden ze in verschillende situaties gebruikt:

  • context.Background() — dit is de basis, lege context die meestal wordt gebruikt als de root-context in main-functies, tests of tijdens initialisatie. Het betekent dat de context niet wordt geannuleerd en geen waarden bevat.

  • context.TODO() — wordt gebruikt als tijdelijke aanduiding op plaatsen in de code waar de context nog niet is gedefinieerd of waar nog niet is besloten welke context te gebruiken. Het is een signaal voor ontwikkelaars dat hier later over nagedacht moet worden en dat het moet worden vervangen door een geschikte context.

Voorbeeld:

func main() {
    ctx := context.Background() // root-context
    process(ctx)
}

func process(ctx context.Context) {
    // als we nog niet weten welke context we verder moeten geven
    childCtx := context.TODO()
    doSomething(childCtx)
}

Kort samengevat:

  • Gebruik Background() als root-context.
  • Gebruik TODO() als tijdelijke placeholder wanneer de context nog niet is gedefinieerd.