Sobes.tech
Middle+

Peut-on mettre une structure dans le contexte via context.WithValue ?

sobes.tech IA

Réponse de l'IA

Oui, en Go, vous pouvez placer une structure dans le contexte à l'aide de context.WithValue. Cependant, il est important de se rappeler que le contexte est destiné à transmettre des données liées à la requête, telles que les délais d'attente, les délais et les métadonnées, et non pour transmettre de grandes structures ou des structures modifiables.

Exemple:

type User struct {
    ID   int
    Name string
}

ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)

// Extraction
u, ok := ctx.Value("user").(*User)
if ok {
    fmt.Println(u.Name)
}

Il est recommandé d'utiliser des types de clés qui ne entrent pas en conflit avec d'autres packages, par exemple, des types de clés propres, pour éviter les collisions.