Middle+
Ar galima struktūrą įdėti į kontekstą naudojant context.WithValue?
sobes.tech AI
Atsakymas iš AI
Taip, Go galite įdėti struktūrą į kontekstą naudodami context.WithValue. Tačiau svarbu prisiminti, kad kontekstas skirtas perduoti su užklausa susijusius duomenis, tokius kaip laiko limitai, terminai ir metaduomenys, o ne didelėms ar keičiamoms struktūroms.
Pavyzdys:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Išgavimas
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Rekomenduojama naudoti raktų tipus, kurie nesikerta su kitais paketais, pavyzdžiui, savo raktų tipus, siekiant išvengti konfliktų.