Junior — Middle
El tudná magyarázni, hogy mire szolgál a context.WithValue funkció a Go-ban, és hogyan működik?
sobes.tech MI
Válasz az MI-től
A context.WithValue függvény Go-ban új kontextus létrehozására szolgál, amely egy kulcs-érték párt tartalmaz. Ez lehetővé teszi további adatok átadását a hívási láncon keresztül anélkül, hogy megváltoztatná a függvények aláírását.
Így működik: megadod az eredeti kontextust, a kulcsot és az értéket, és egy új kontextust kapsz, amelyből ki tudod nyerni ezt az értéket a context.Value(key) segítségével.
Példa:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Kiírja: 42
Fontos, hogy egyedi típusokat használjunk kulcsokhoz, hogy elkerüljük a konfliktusokat, például saját típusokat definiálva a kulcsoknak.