Junior — Middle
Jak rozpoznat použití Context.TODO od Context.Background v kódu, a v jakých případech se tyto funkce používají?
sobes.tech AI
Odpověď od AI
V jazyce Go context.Background() a context.TODO() vrací kontext, ale používají se v různých situacích:
-
context.Background()— je základní, prázdný kontext, který se obvykle používá jako kořenový kontext v hlavních funkcích, testech nebo při inicializaci. To znamená, že kontext není zrušen a neobsahuje žádné hodnoty. -
context.TODO()— se používá jako dočasný zástupný symbol na místech v kódu, kde kontext ještě není definován nebo nebylo rozhodnuto, jaký kontext použít. Je to signál pro vývojáře, že je třeba později přemýšlet a nahradit ho vhodným kontextem.
Příklad:
func main() {
ctx := context.Background() // kořenový kontext
process(ctx)
}
func process(ctx context.Context) {
// pokud ještě nevíme, jaký kontext předat dále
childCtx := context.TODO()
doSomething(childCtx)
}
Shrnutí:
- Používejte
Background()jako kořenový kontext. - Používejte
TODO()jako dočasný zástupný symbol, když kontext ještě není definován.