Middle+
È possibile inserire una struttura nel contesto tramite context.WithValue?
sobes.tech AI
Risposta dell'AI
Sì, in Go puoi inserire una struttura nel contesto usando context.WithValue. Tuttavia, è importante ricordare che il contesto è destinato a trasmettere dati legati alla richiesta, come timeout, scadenze e metadati, e non per trasmettere strutture grandi o modificabili.
Esempio:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Estrazione
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Si consiglia di usare tipi di chiavi che non entrino in conflitto con altri pacchetti, ad esempio, tipi di chiavi propri, per evitare collisioni.