Sobes.tech
Назад к вопросам
Junior — Middle
83

Можете объяснить, для чего используется функция context.WithValue в Go и как она работает?

Компании, где спрашивали
Lamoda Tech

Ответ от нейросети

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

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