Sobes.tech
Назад к вопросам
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 полезен для неблокирующего поведения при работе с каналами.