Junior — Middle
Czy możesz wyjaśnić, do czego służy funkcja context.WithValue w Go i jak ona działa?
sobes.tech AI
Odpowiedź od AI
Funkcja context.WithValue w Go służy do tworzenia nowego kontekstu, który zawiera parę klucz-wartość. Umożliwia to przekazywanie dodatkowych danych przez łańcuch wywołań bez zmiany sygnatur funkcji.
Działa to tak: podajesz oryginalny kontekst, klucz i wartość, i otrzymujesz nowy kontekst, z którego można wyciągnąć tę wartość za pomocą context.Value(key).
Przykład:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Wypisze: 42
Ważne jest używanie unikalnych typów kluczy, aby uniknąć konfliktów, na przykład definiując własny typ dla kluczy.