Sobes.tech
Назад к вопросам
Middle+
7

Для чего используется передача метаданных через контекст?

Компании, где спрашивали
MAX LTD Group

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

sobes.tech AI

В Go контекст (context.Context) используется для передачи метаданных, таких как дедлайны, отмена операций и дополнительные значения, между функциями и горутинами.

Передача метаданных через контекст позволяет:

  • Управлять временем жизни запроса (например, отменять операции при таймауте).
  • Передавать информацию, не меняя сигнатуру функций (например, ID пользователя, токены).
  • Обеспечивать потокобезопасность и удобство передачи данных в цепочке вызовов.

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

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

func process(ctx context.Context) {
    if reqID, ok := ctx.Value("requestID").(string); ok {
        fmt.Println("Request ID:", reqID)
    }
}

process(ctx)