Back to questions
Senior
6
// Вопрос 5. Что выведет на экран func main() { ch := make(chan int, 5) for i := 1; i <= 5; i++ { ch <- i } for true { fmt.Println(<-ch) } }
Companies where asked
МВидео/эльдорадо
Answer from AI
sobes.tech AI
Данный код создаёт буферизированный канал ch с размером буфера 5 и записывает в него числа от 1 до 5. Затем бесконечный цикл читает из канала и выводит значения.
Поскольку канал заполнен ровно 5 элементами, первые 5 чтений из канала выведут числа 1, 2, 3, 4, 5.
После этого канал опустеет, и следующий оператор <-ch в бесконечном цикле будет блокироваться, ожидая новых данных, которых не будет, так как в коде нет отправки новых значений.
В итоге программа выведет числа от 1 до 5 по одному в строке и затем зависнет, ожидая данные из пустого канала.
Пример вывода:
1
2
3
4
5