Каким образом определить, что выполнение текущего контекста было прервано или отменено?

В Go для определения, что выполнение текущего контекста было прервано или отменено, используется метод Done() у объекта context.Context.

Короткий ответ

Что ответить на собеседовании

В Go для определения, что выполнение текущего контекста было прервано или отменено, используется метод Done() у объекта context.Context. Этот метод возвращает канал, который закрывается при отмене контекста. Обычно проверку делают так:

Подробный разбор

Ответ с пояснениями

В Go для определения, что выполнение текущего контекста было прервано или отменено, используется метод Done() у объекта context.Context. Этот метод возвращает канал, который закрывается при отмене контекста. Обычно проверку делают так:

select {
case <-ctx.Done():
    // Контекст отменён или истёк таймаут
    err := ctx.Err() // context.Canceled или context.DeadlineExceeded
    // Обработка отмены
default:
    // Продолжаем работу
}

Таким образом, если канал ctx.Done() закрыт, значит выполнение нужно прервать.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее