Sobes.tech
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.