Junior
64
questionbank

Расскажи об аналоге оператора default в конструкции select.

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Оператор default в select блоке позволяет выполнить действие, если ни один из каналов, указанных в case ветках, не готов к приему или передаче данных без блокировки.

Он используется для реализации неблокирующего чтения или записи из/в каналы, а также для установки тайм-аутов.

Пример использования default для неблокирующего чтения из канала:

go

В этом примере, если канал ch пуст, выполнение перейдет в ветку default, и программа не будет ждать поступления данных.

Пример использования default для неблокирующей записи в канал:

go

Здесь, если канал ch полон, попытка записи в ветке case ch <- data: заблокируется. default позволяет избежать этого и выполнить альтернативное действие.

default является опциональным. Если он отсутствует и ни один из каналов не готов, select блок будет блокировать выполнение горутины до тех пор, пока один из каналов не станет готовым.