Sobes.tech
Junior — Middle

Можете ли објаснити зашто се користи функција context.WithValue у Go-у и како она ради?

sobes.tech АИ

Одговор од АИ

Funkcija context.WithValue u Go se koristi za kreiranje novog konteksta koji sadrži par ključ-vrednost. Ovo omogućava prenos dodatnih podataka kroz lanac poziva, bez menjanja potpisa funkcija.

Radi ovako: pružate originalni kontekst, ključ i vrednost, i dobijate novi kontekst iz kojeg možete izvući tu vrednost pomoću context.Value(key).

Primer:

ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Ispisaće: 42

Važno je koristiti jedinstvene tipove ključeva da biste izbegli konflikte, na primer, definišući sopstveni tip za ključeve.