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
Важно е да използвате уникални типове за ключове, за да избегнете конфликти, например, като дефинирате собствен тип за ключовете.