Sobes.tech
Назад к вопросам
Senior
5

// Вопрос 5. Что выведет на экран func main() { ch := make(chan int, 5) for i := 1; i <= 5; i++ { ch <- i } for true { fmt.Println(<-ch) } }

Компании, где спрашивали
МВидео/эльдорадо

Ответ от нейросети

sobes.tech AI

Данный код создаёт буферизированный канал ch с размером буфера 5 и записывает в него числа от 1 до 5. Затем бесконечный цикл читает из канала и выводит значения.

Поскольку канал заполнен ровно 5 элементами, первые 5 чтений из канала выведут числа 1, 2, 3, 4, 5.

После этого канал опустеет, и следующий оператор <-ch в бесконечном цикле будет блокироваться, ожидая новых данных, которых не будет, так как в коде нет отправки новых значений.

В итоге программа выведет числа от 1 до 5 по одному в строке и затем зависнет, ожидая данные из пустого канала.

Пример вывода:

1
2
3
4
5