Sobes.tech
Senior

Co je to context v Go a k čemu slouží?

sobes.tech AI

Odpověď od AI

V jazyce Go je context balíček a typ, který se používá k přenosu dat a signálů zrušení mezi gorutinami a funkcemi. Je nezbytný pro správu životnosti operací, zejména u síťových požadavků a dlouhotrvajících procesů.

Hlavní funkce context:

  • Zrušení operace (přes context.CancelFunc) pro přerušení práce podle potřeby.
  • Přenos časových limitů (do kdy má operace skončit).
  • Přenos hodnot (například identifikátorů požadavků) mezi funkcemi.

Příklad použití:

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

select {
case <-time.After(time.Second * 10):
    fmt.Println("operace dokončena")
case <-ctx.Done():
    fmt.Println("operace zrušena nebo vypršela")
}

Tímto způsobem context pomáhá řídit a koordinovat provádění asynchronních a dlouhotrvajících operací.