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.