Can I concurrently write different slice elements
问题 I have a slice that contains work to be done, and a slice that will contain the results when everything is done. The following is a sketch of my general process: var results = make([]Result, len(jobs)) wg := sync.WaitGroup{} for i, job := range jobs { wg.Add(1) go func(i int, j job) { defer wg.Done() var r Result = doWork(j) results[i] = r }(i, job) } wg.Wait() // Use results It seems to work, but I have not tested it thoroughly and am not sure if it is safe to do. Generally I would not feel