Junior — Middle
Czy kiedykolwiek używałeś funkcji context.WithValue w swoim kodzie?
sobes.tech AI
Odpowiedź od AI
Tak, funkcja context.WithValue w Go jest używana do przekazywania wartości w kontekście wykonania, zazwyczaj do przekazywania danych między funkcjami i gorutynami bez zmiany sygnatur funkcji.
Ważne jest, aby pamiętać, że kontekst jest przeznaczony do przekazywania informacji związanych z zarządzaniem cyklem życia (np. limity czasowe, anulowania), a nie do przekazywania dużych ilości danych lub parametrów.
Przykład użycia:
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 12345)
func process(ctx context.Context) {
userID := ctx.Value("userID")
fmt.Println("ID użytkownika:", userID)
}
process(ctx)
W ten sposób, context.WithValue pomaga przekazywać dodatkowe dane w łańcuchu wywołań, zachowując możliwość anulowania i ustawiania limitów czasowych.