Sobes.tech
Middle+

Може ли структуру ставити у контекст кроз context.WithValue?

sobes.tech АИ

Одговор од АИ

Da, u Go možete postaviti strukturu u kontekst pomoću context.WithValue. Međutim, važno je zapamtiti da je kontekst namenjen za prenos podataka povezanih sa zahtevom, kao što su vremenski limiti, rokovi i metapodaci, a ne za prenos velikih ili promenljivih struktura.

Primer:

type User struct {
    ID   int
    Name string
}

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

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

Preporučuje se korišćenje tipova ključeva koji ne kolidiraju sa drugim paketima, na primer, sopstvenih tipova ključeva, da bi se izbegle kolizije.