Горутины пишут в общую map без синхронизации

ЗадачаMiddle5 минбесплатночто выведет и почему03-t010

В цикле запускают по горутине на каждое i от 0 до 9, каждая пишет seen[i] = true в общую map без синхронизации. Что выведет программа? Как поведение зависит от версии Go и как исправить?

main.gogo
1var seen map[int]bool2 3func main() {4	seen = map[int]bool{}5 6	for i := 0; i < 10; i++ {7		go func() {8			seen[i] = true9		}()10	}11 12	time.Sleep(time.Second * 100)13 14	for k, v := range seen {15		fmt.Println(k, v)16	}17}
⌘ Enter — проверить