Middle+
Este posibil să pui o structură în context prin intermediul context.WithValue?
sobes.tech AI
Răspuns de la AI
Da, în Go poți plasa o structură în context folosind context.WithValue. Cu toate acestea, trebuie să reții că contextul este destinat pentru transmiterea datelor legate de solicitare, cum ar fi timeout-uri, termene limită și metadate, și nu pentru transmiterea structurilor mari sau modificabile.
Exemplu:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Extrage
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Se recomandă utilizarea tipurilor de chei care nu intră în conflict cu alte pachete, de exemplu, tipuri de chei proprii, pentru a evita coliziunile.