Sobes.tech
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.