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