Sobes.tech
Junior — Middle

Kas saaksite selgitada, milleks on funktsioon context.WithValue Go-s ja kuidas see töötab?

sobes.tech AI

Vastus AI-lt

Funktsioon context.WithValue Go keeles kasutatakse uue konteksti loomiseks, mis sisaldab võtit-väärtust paari. See võimaldab edastada täiendavaid andmeid kutsesüsteemi kaudu, ilma funktsioonide allkirju muutmata.

Töötab järgmiselt: annate algse konteksti, võtme ja väärtuse ning saate uue konteksti, millest saate selle väärtuse välja võtta context.Value(key) abil.

Näide:

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

userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Väljund: 42

Oluline on kasutada unikaalseid võtmetüüpe, et vältida konflikte, näiteks määrates oma tüübi võtmete jaoks.