Return values from go routines cannot be captured in the usual way with the
= operator because starting a go routine is non blocking. A channel can be used to collect the results from many concurrent go routines. Write a value to a channel inside the go routine that is doing the work, then in
main() read from the channel until it is closed to collect all the results from the go routines.