Sobes.tech
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

Важно е да използвате уникални типове за ключове, за да избегнете конфликти, например, като дефинирате собствен тип за ключовете.