Back to questions
Middle
5
Select в Go — для чего нужен?
Companies where asked
Магнум
Answer from AI
sobes.tech AI
В Go оператор select используется для работы с несколькими каналами одновременно. Он позволяет ждать сразу несколько операций чтения или записи на каналах и реагировать на ту, которая станет доступна первой.
Это особенно полезно для реализации конкурентных алгоритмов и обработки нескольких источников данных без блокировки.
Пример использования select:
ch1 := make(chan int)
ch2 := make(chan int)
go func() {
ch1 <- 1
}()
go func() {
ch2 <- 2
}()
select {
case val := <-ch1:
fmt.Println("Получено из ch1:", val)
case val := <-ch2:
fmt.Println("Получено из ch2:", val)
case <-time.After(time.Second):
fmt.Println("Таймаут")
}
В этом примере select ждет данные из ch1 или ch2 и выводит, откуда пришло значение, или срабатывает таймаут.