Back to questions
Junior — Middle
84
Можете объяснить, для чего используется функция context.WithValue в Go и как она работает?
Companies where asked
Lamoda Tech
Answer from AI
sobes.tech AI
Функция context.WithValue в Go используется для создания нового контекста, который содержит пару ключ-значение. Это позволяет передавать дополнительные данные через цепочку вызовов, не изменяя сигнатуры функций.
Работает так: вы передаёте исходный контекст, ключ и значение, и получаете новый контекст, из которого можно извлечь это значение с помощью context.Value(key).
Пример:
ctx := context.Background()
ctxWithValue := context.WithValue(ctx, "userID", 42)
userID := ctxWithValue.Value("userID")
fmt.Println(userID) // Выведет: 42
Важно использовать уникальные типы ключей, чтобы избежать конфликтов, например, определять собственный тип для ключей.