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.