Junior — Middle
Kokią informaciją galima perduoti per kontekstą programėlėje?
sobes.tech AI
Atsakymas iš AI
Go dažniausiai perduoda su užklausos ar operacijos gyvavimo ciklo valdymu susijusią informaciją per context (context.Context`), pavyzdžiui:
- Operacijos atšaukimas (per
Done()kanalą). - Terminas ir laiko limitai (per
Deadline()). - Vertės, kurios reikalingos visos iškvietimų grandinės metu, pvz., užklausos identifikatoriai, autentifikacijos tokenai, metaduomenys.
Svarbu: kontekste nereikėtų talpinti didelių objektų, būsenų ar duomenų, nesusijusių su užklausos valdymu, kad nesugadintumėte jo paskirties ir išvengtumėte atminties nutekėjimo.
Pavyzdys, kaip perduoti reikšmę per kontekstą:
ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")