Sobes.tech
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.