Встречается на собеседованиях • сегодня

Использовал ли context.WithValue

context.WithValue используется для передачи данных через контекст в цепочке вызовов. Это удобно для передачи request-scoped данных, например, аутентификационных токенов или трейс-идентификаторов. Однако злоупотреблять им не стоит — контекст не предназначен для передачи сложных зависимостей.

Пример:

go
ctx := context.Background()
ctx = context.WithValue(ctx, "userID", 123)

// Где-то в другом месте
userID := ctx.Value("userID").(int) // Приведение типа обязательно

Важно:

  • Используйте ключи своего типа (не строки) во избежание коллизий
  • Не передавайте через контекст обязательные параметры функций
  • Данные должны быть потокобезопасными

Контекст — это не замена DI или глобальным переменным, а механизм передачи метаданных.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы