Junior — Middle
Jaká je role a účel kontextu v jazyce Go?
sobes.tech AI
Odpověď od AI
V jazyce Go se kontext (context.Context) používá k řízení životnosti operací, přenosu signálů zrušení a přenosu hodnot mezi gorutinami a funkcemi.
Hlavní úkoly kontextu:
- Zrušení operací: umožňuje zrušit dlouhé nebo blokující operace, například při časovém limitu nebo zrušení požadavku.
- Přenášení lhůt: lze nastavit čas, po kterém má být operace automaticky přerušena.
- Přenášení hodnot: umožňuje přenášet data související s požadavkem nebo operací, například identifikátory uživatelů, tokeny atd.
Příklad použití:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// Předáváme ctx funkci, která provádí dlouhou operaci
result, err := LongOperation(ctx)
if err == context.DeadlineExceeded {
fmt.Println("Operace byla přerušena kvůli časovému limitu")
}
Kontekst pomáhá psát lépe spravovatelný a citlivý kód, zejména v síťových a konkurenčních aplikacích.