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