Middle+
¿Se puede poner una estructura en el contexto a través de context.WithValue?
sobes.tech AI
Respuesta de la IA
Sí, en Go puedes colocar una estructura en el contexto usando context.WithValue. Sin embargo, debes recordar que el contexto está destinado a transmitir datos relacionados con la solicitud, como tiempos de espera, límites de tiempo y metadatos, y no para transmitir estructuras grandes o modificables.
Ejemplo:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Extracción
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Se recomienda usar tipos de claves que no entren en conflicto con otros paquetes, por ejemplo, tipos de claves propios, para evitar colisiones.