Middle+
Lze vložit strukturu do kontextu pomocí context.WithValue?
sobes.tech AI
Odpověď od AI
Ano, v Go můžete vložit strukturu do kontextu pomocí context.WithValue. Je však důležité si uvědomit, že kontext je určen k přenosu dat souvisejících s požadavkem, jako jsou časové limity, deadliny a metadata, nikoli k přenosu velkých nebo měnitelných struktur.
Příklad:
type User struct {
ID int
Name string
}
ctx := context.Background()
user := &User{ID: 1, Name: "Alice"}
ctx = context.WithValue(ctx, "user", user)
// Získání
u, ok := ctx.Value("user").(*User)
if ok {
fmt.Println(u.Name)
}
Doporučuje se používat typy klíčů, které nekolidují s jinými balíčky, například vlastní typy klíčů, aby se předešlo kolizím.