Junior — Middle
Оё метавонед шарҳ диҳед, ки функсияи context.WithValue дар Go барои чӣ истифода мешавад ва чӣ гуна кор мекунад?
sobes.tech AI
Ҷавоб аз AI
Функсияи context.WithValue дар Go барои эҷоди контекси нав истифода мешавад, ки дар он як ҷуфт калид-арзиш дорад. Ин имкон медиҳад, ки маълумоти иловагӣ тавассути занҷираи даъватҳо интиқол дода шавад, бе тағир додани имзоҳои функсияҳо.
Ин гуна кор мекунад: шумо контекси аслӣ, калид ва арзишро медиҳед ва контекси нав мегиред, ки аз он метавонед ин арзишро бо context.Value(key) бароред.
Масалан:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Натиҷа: 42
Муҳим аст, ки намудҳои калидҳои беназир истифода шаванд, то бо муноқишаҳо пешгирӣ шавад, масалан, муайян кардани намудҳои худ барои калидҳо.