Ответ
В 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()
Контекст передаётся первым параметром в функции, которые могут быть отменены или требуют таймаутов.