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

Какую информацию допустимо передавать через контекст в приложении?

Компании, где спрашивали
Российский центр оборота прав

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

sobes.tech AI

В Go через контекст (context.Context) обычно передают информацию, связанную с управлением жизненным циклом запроса или операции, например:

  • Отмена операции (через Done() канал).
  • Дедлайны и таймауты (через Deadline()).
  • Значения, которые нужны на протяжении всей цепочки вызовов, например, идентификаторы запросов, токены аутентификации, метаданные.

Важно: в контекст нельзя помещать большие объекты, состояние или данные, которые не относятся к управлению запросом, чтобы не нарушать его предназначение и не создавать утечки памяти.

Пример передачи значения через контекст:

ctx := context.WithValue(context.Background(), "requestID", "12345")
requestID := ctx.Value("requestID")