🔴 Сложный · 3 очк. Каналы
Что произойдёт: var ch chan int; <-ch?
A panic
B Вернёт 0
C Блокировка навсегда (deadlock)
D Ошибка компиляции
Объяснение вопроса

Чтение из nil-канала блокирует горутину навсегда. Если это единственная активная горутина, рантайм сообщит о deadlock.

Поведение nil-канала

  • Чтение <-ch - блокировка навсегда
  • Отправка ch <- x - блокировка навсегда
  • close(ch) - паника

Применение в select

В select nil-каналы никогда не "готовы", поэтому их используют для динамического отключения case: присвоить ch = nil, и соответствующий case перестанет срабатывать.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.