Junior — Middle
Môžeš uviesť situácie alebo prípady, v ktorých sa používa koncept kontextu?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa koncept kontextu (context.Context) používa na riadenie životnosti operácií, ich zrušenia, časových limitov a prenos hodnôt medzi gorutinami.
Hlavné prípady použitia:
- Zrušenie operácií: napríklad pri práci s sieťovými požiadavkami alebo databázami je možné zrušiť dlhú operáciu, ak klient preruší požiadavku.
- Časové limity a timeouty: je možné nastaviť maximálny čas vykonávania operácie, po ktorom sa automaticky zruší.
- Prenos hodnôt: napríklad identifikátory požiadaviek, tokeny autentifikácie, metadáta, ktoré sú potrebné na rôznych úrovniach volaní.
Príklad:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Vykonať prácu
case <-ctx.Done():
// Operácia bola zrušená alebo vypršal časový limit
return
}
}
Kontekst pomáha písať lepšie spravovateľný a rýchlejšie reagujúci kód, najmä v viacvláknových a sieťových aplikáciách.