Junior — Middle
Können Sie erklären, wofür die Funktion context.WithValue in Go verwendet wird und wie sie funktioniert?
sobes.tech KI
Antwort von AI
Die Funktion context.WithValue in Go wird verwendet, um einen neuen Kontext zu erstellen, der ein Schlüssel-Wert-Paar enthält. Dies ermöglicht das Übertragen zusätzlicher Daten durch die Aufrufkette, ohne die Signaturen der Funktionen zu ändern.
So funktioniert es: Sie übergeben den ursprünglichen Kontext, den Schlüssel und den Wert, und erhalten einen neuen Kontext, aus dem Sie diesen Wert mit context.Value(key) extrahieren können.
Beispiel:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Gibt aus: 42
Es ist wichtig, eindeutige Schlüsseltypen zu verwenden, um Konflikte zu vermeiden, z.B. durch die Definition eines eigenen Schlüsseltyps.