Что такое nil channel в select?

Middle
188 просмотров
AFK Offer AI

nil канал в select никогда не ready — ни для чтения, ни для записи. Это удобно для динамического отключения case'ов. Например, прочитал все данные из канала — ставишь его в nil, и select больше не проверяет этот case. Если все каналы nil и нет default — select блокируется навсегда (deadlock). Это мощный паттерн для merge и fan-in операций.

Следующий вопрос

Как Go управляет памятью автоматически?