Senior
Co je to kontext (context) v Go a k čemu slouží?
sobes.tech AI
Odpověď od AI
V Go je context balíček a typ, který se používá k přenosu signálů o zrušení, časových limitů a dalších důležitých dat mezi gorutinami.
Hlavní funkce context:
- Umožňuje zrušit operace (například dotazy na databázi nebo HTTP) při dosažení časového limitu nebo při zrušení uživatelem.
- Přenáší časové limity (deadlines) pro operace.
- Umožňuje přenášet hodnoty mezi funkcemi (například identifikátory požadavků).
Příklad použití:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
select {
case result := <-doWork(ctx):
fmt.Println("Výsledek:", result)
case <-ctx.Done():
fmt.Println("Operace zrušena nebo vypršel časový limit")
}
Zde je ctx předáno funkci doWork, která může přerušit svou práci, pokud je kontext zrušen nebo vyprší časový limit. To pomáhá řídit životnost operací a zdrojů v konkurenčních programech.