Что делает default в select?

Junior
1.2k просмотров
AFK Offer AI

default в select делает его неблокирующим. Если ни один case не готов — выполняется default вместо блокировки.

// Неблокирующее чтение
select {
case msg := <-ch:
    fmt.Println(msg)
default:
    fmt.Println("канал пуст")
}

// Неблокирующая отправка select { case ch <- 42: fmt.Println("sent") default: fmt.Println("канал полон, пропускаем") }

Часто используется для: проверки канала без блокировки, busy-wait loop (осторожно с CPU), try-lock паттерна. Без default select блокирует горутину до готовности одного из case.

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

UUID vs serial — что выбрать?