Junior — Senior
49
Коррекция замыкания и взаимодействие с планировщиком
Условие задачи
Необходимо поправить программу, чтобы она надёжно выводила числа от 0 до 9. После исправления следует объяснить, как внутри планировщика Go происходит распределение работы. Какие результаты выдаст приведённый фрагмент при запуске на Go 1.21? Как гарантировать, что на экран появятся все числа от 0 до 9? Охарактеризуйте, каким образом планировщик распределяет горутины и почему это связано с тем, как захватывается переменная цикла.
func main() {
for idx := 0; idx < 10; idx++ {
go func() {
fmt.Println(idx)
}()
}
}