// Вопрос 5. Что выведет на экран

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

Условие

// Вопрос 5. Что выведет на экран

func main() { ch := make(chan int, 5) for i := 1; i <= 5; i++ { ch <- i }

for true {
	fmt.Println(<-ch)
}

}

Ответ

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

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

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

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

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

1
2
3
4
5

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее