Sobes.tech
Middle+

Kun je een structuur in de context plaatsen via context.WithValue?

sobes.tech AI

Antwoord van AI

Ja, in Go kun je een structuur in de context plaatsen met behulp van context.WithValue. Het is echter belangrijk om te onthouden dat de context bedoeld is om gegevens die verband houden met de aanvraag over te dragen, zoals time-outs, deadlines en metadata, en niet voor het overdragen van grote of wijzigbare structuren.

Voorbeeld:

type User struct {
    ID   int
    Name string
}

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

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

Het wordt aanbevolen om sleuteltypen te gebruiken die niet conflicteren met andere pakketten, bijvoorbeeld eigen sleuteltypen, om conflicten te voorkomen.