Junior — Middle
Aká je úloha a účel kontextu v jazyku Go?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa kontext (context.Context) používa na riadenie životnosti operácií, prenos signálov zrušenia a prenos hodnôt medzi gorutinami a funkciami.
Hlavné úlohy kontextu:
- Zrušenie operácií: umožňuje zrušiť dlhé alebo blokujúce operácie, napríklad pri časovom limite alebo zrušení požiadavky.
- Prenos termínov: je možné nastaviť čas, po ktorom má byť operácia automaticky prerušená.
- Prenos hodnôt: umožňuje prenášať údaje súvisiace s požiadavkou alebo operáciou, ako sú identifikátory používateľov, tokeny a pod.
Príklad použitia:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// Prenášame ctx do funkcie, ktorá vykonáva dlhú operáciu
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
fmt.Println("Operácia bola prerušená kvôli časovému limitu")
}
Kontekst pomáha písať lepšie spravovateľný a rýchlo reagujúci kód, najmä v sieťových a súbežných aplikáciách.