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