Junior — Middle
Kas olete kunagi kasutanud funktsiooni context.WithValue oma koodis?
sobes.tech AI
Vastus AI-lt
Jah, funktsioon context.WithValue Go keeles kasutatakse väärtuste edastamiseks täitmise kontekstis, tavaliselt andmete edastamiseks funktsioonide ja goroutine'ide vahel ilma funktsioonide signatuuri muutmata.
Oluline on meeles pidada, et kontekst on mõeldud teabe edastamiseks, mis on seotud elutsükli haldamisega (näiteks ajapiirangud, tühistamised), mitte suurte andmemahtude või parameetrite edastamiseks.
Kasutusnäide:
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 12345)
func process(ctx context.Context) {
userID := ctx.Value("userID")
fmt.Println("Kasutaja ID:", userID)
}
process(ctx)
Seega aitab context.WithValue edastada täiendavaid andmeid kutsesarjas, säilitades võimaluse tühistamiseks ja ajapiirangute seadmiseks.