Назад к вопросам
Junior — Middle
78
В каких ситуациях срабатывает блок default в конструкции Select?
Ответ от нейросети
sobes.tech AI
В Go конструкция select используется для работы с несколькими каналами одновременно. Блок default срабатывает, когда ни один из каналов в select не готов к операции (ни чтение, ни запись невозможны в данный момент).
Это позволяет избежать блокировки горутины и выполнить альтернативный код сразу же.
Пример:
select {
case msg := <-ch1:
fmt.Println("Получено сообщение:", msg)
case ch2 <- 42:
fmt.Println("Отправлено сообщение в ch2")
default:
fmt.Println("Ни один канал не готов, выполняется default")
}
Если ни ch1 не готов для чтения, ни ch2 для записи, будет выполнен блок default.
Таким образом, default полезен для неблокирующего поведения при работе с каналами.