🔴 Сложный · 3 очк. Context
Что делает context.AfterFunc(ctx, f) (Go 1.21+)?
A Вызывает f перед отменой ctx
B Вызывает f в отдельной горутине после отмены ctx
C Устанавливает таймаут для ctx
D Вызывает f при каждом обращении к ctx
Объяснение вопроса

context.AfterFunc(ctx, f) регистрирует функцию f, которая будет вызвана в отдельной горутине после отмены контекста ctx. Возвращает функцию stop для отмены регистрации (если контекст ещё не отменён).

Применение

Удобно для cleanup-логики, привязанной к жизненному циклу контекста: закрытие соединений, отмена подзадач.

stop := context.AfterFunc(ctx, func() {
    conn.Close()
})
defer stop()  // отменить регистрацию при раннем выходе
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.