🟡 Средний · 2 очк. Каналы
Что делает select в Go?
A Выбирает из slice
B Ожидает операции на каналах
C Аналог switch для типов
D Фильтрует данные
Объяснение вопроса

select ждёт выполнения одного из нескольких операций с каналами. Выполняется первый case, канал которого готов (есть данные для чтения или место для записи). Если готовы несколько - выбирается один случайно. С default select не блокирует.

select {
case v := <-ch1:
    use(v)
case ch2 <- x:
    // отправлено
case <-ctx.Done():
    return ctx.Err()
default:
    // ни один канал не готов
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.