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