Sobes.tech
Junior — Middle

Kunt u uitleggen waar de functie context.WithValue in Go voor wordt gebruikt en hoe deze werkt?

sobes.tech AI

Antwoord van AI

De functie context.WithValue in Go wordt gebruikt om een nieuwe context te creëren die een sleutel-waarde paar bevat. Dit maakt het mogelijk om extra gegevens door te geven via de keten van aanroepen, zonder de handtekeningen van functies te wijzigen.

Het werkt als volgt: je geeft de oorspronkelijke context, de sleutel en de waarde door, en krijgt een nieuwe context terug waaruit je deze waarde kunt halen met context.Value(key).

Voorbeeld:

ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Output: 42

Het is belangrijk om unieke sleuteltypen te gebruiken om conflicten te voorkomen, bijvoorbeeld door een eigen type voor sleutels te definiëren.