Sobes.tech
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.