Выбор ответа Junior Каналы и select обновлено

select с default

Вопрос

Что делает ветка default в select?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Срабатывает сразу, если другие ветки не готовы. С default select не ждёт: нет готовых операций, значит выполнится default.

Варианты ответа

  1. Выполняется всегда после выбранной ветки, как finally
  2. Выполняется, когда все каналы в select закрыты
  3. Задаёт таймаут ожидания по умолчанию в 1 секунду
  4. Срабатывает сразу, если другие ветки не готовыправильный ответ

Разбор

С default select не ждёт: нет готовых операций, значит выполнится default. Так делают неблокирующую отправку или чтение (select { case ch <- v: default: /* буфер полон */ }). default не выполняется дополнительно и не связан с закрытием или таймаутом. Пустой цикл с select-default крутит процессор.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.