Junior — Middle
Ar galite pateikti situacijų ar atvejų, kai naudojamas konteksto konceptas?
sobes.tech AI
Atsakymas iš AI
Go kalboje konteksto (context.Context) są naudojamas operacijų gyvavimo ciklo valdymui, atšaukimams, laiko limitams ir reikšmių perdavimui tarp gorutinių.
Pagrindiniai naudojimo atvejai:
- Operacijų atšaukimas: pavyzdžiui, dirbant su tinklo užklausomis ar duomenų bazėmis, galima atšaukti ilgą operaciją, jei klientas nutraukia užklausą.
- Laiko limitai ir timeout'ai: galima nustatyti maksimalų operacijos vykdymo laiką, po kurio ji automatiškai atšaukiama.
- Reikšmių perdavimas: pavyzdžiui, užklausos identifikatoriai, autentifikacijos tokenai, metaduomenys, kurie reikalingi skirtinguose iškvietimo lygiuose.
Pavyzdys:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Atlikti darbą
case <-ctx.Done():
// Operacija atšaukta arba pasibaigė laiko limitas
return
}
}
Kontekstas padeda rašyti geriau valdomą ir reaguojantį kodą, ypač daugiagijose ir tinklo programose.