Sobes.tech
Middle+

Je možné vložiť štruktúru do kontextu pomocou context.WithValue?

sobes.tech AI

Odpoveď od AI

Áno, v Go môžete vložiť štruktúru do kontextu pomocou context.WithValue. Je však dôležité si uvedomiť, že kontext je určený na prenos údajov súvisiacich s požiadavkou, ako sú časové limity, deadliny a metadáta, a nie na prenos veľkých alebo meniteľných štruktúr.

Príklad:

type User struct {
    ID   int
    Name string
}

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

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

Odporúča sa používať typy kľúčov, ktoré nekolidujú s inými balíkmi, napríklad vlastné typy kľúčov, aby sa predišlo kolíziám.