В каком типе данных прописываются методы реализации контекста

«В каком типе данных прописываются методы реализации контекста» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Go контекст реализуется через интерфейс context.Context. Он определяет методы для работы с контекстом:

type Context interface {
    Deadline() (deadline time.Time, ok bool)
    Done() <-chan struct{}
    Err() error
    Value(key any) any
}

Основные реализации:

  • context.Background() - пустой контекст
  • context.TODO() - заглушка
  • Производные контексты (WithCancel, WithTimeout, WithValue)

Пример создания контекста с таймаутом:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()

Контекст передаётся первым параметром в функции, которые могут быть отменены или требуют таймаутов.