В языке Go оператор select используется для работы с несколькими каналами одновременно. Если вызвать пустой select (то есть без ни одного case), то выполнение блокируется навсегда, так как нет ни одного канала для чтения или записи, и нет default-кейса.
Что произойдёт с горутиной при пустом select {}?
В языке Go оператор select используется для работы с несколькими каналами одновременно.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт с горутиной при пустом select {}?
Ответ
В языке Go оператор select используется для работы с несколькими каналами одновременно. Если вызвать пустой select (то есть без ни одного case), то выполнение блокируется навсегда, так как нет ни одного канала для чтения или записи, и нет default-кейса.
Пример:
select {
// пустой select
}
Этот код приведет к блокировке горутины, так как select ожидает хотя бы один доступный канал или default для продолжения.