Чтение из канала с задержкой и тайм-аутом
Условие задачи
Какие значения будут выведены в консоль с учётом работы канала, задержек и тайм-аута в блоке select
gofunc main() {
ch := make(chan int)
go func() {
for i := 0; i < 5; i++ {
ch <- i
time.Sleep(time.Second)
}
close(ch)
}()
for {
select {
case v := <-ch:
fmt.Println(v)
case <-time.After(3 * time.Second):
fmt.Println("timeout")
break
}
}
}