Горутины в цикле без ожидания

Что выведетJuniorбесплатно01-t002

Цикл запускает горутину на каждой итерации, горутина читает переменную цикла напрямую. Что выведет программа и как это починить?

main.gogo
1package main2 3import "fmt"4 5func main() {6	nums := []int{1, 2, 3, 4, 5}7	for _, x := range nums {8		go func() {9			fmt.Printf("%d ", x)10		}()11	}12}
Чем закончится программа?
Сначала подумай без запуска — на собесе компилятора не будет.