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í.