Junior — Middle
Můžeš uvést situace nebo případy, ve kterých je koncept kontextu používán?
sobes.tech AI
Odpověď od AI
V jazyce Go se koncept kontextu (context.Context) používá k řízení životnosti operací, jejich zrušení, časových limitů a přenosu hodnot mezi gorutinami.
Hlavní případy použití:
- Zrušení operací: například při práci se síťovými požadavky nebo databázemi lze dlouhou operaci zrušit, pokud klient přeruší požadavek.
- Časové limity a timeouty: lze nastavit maximální dobu provádění operace, po jejímž uplynutí bude automaticky zrušena.
- Přenos hodnot: například identifikátory požadavků, tokeny autentifikace, metadata potřebná na různých úrovních volání.
Příklad:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Provést práci
case <-ctx.Done():
// Operace byla zrušena nebo vypršel časový limit
return
}
}
Kontekst pomáhá psát lépe spravovatelný a citlivý kód, zejména v vícevláknových a síťových aplikacích.