Middle+
É possível colocar uma estrutura no contexto através de context.WithValue?
sobes.tech IA
Resposta da IA
Sim, no Go pode colocar uma estrutura no contexto usando context.WithValue. No entanto, deve lembrar-se de que o contexto destina-se a transmitir dados relacionados com a solicitação, como tempos limite, limites de tempo e metadados, e não para transmitir estruturas grandes ou modificáveis.
Exemplo:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Extração
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Recomenda-se usar tipos de chaves que não entrem em conflito com outros pacotes, por exemplo, tipos de chaves próprios, para evitar colisões.