通过 for range 遍历的返回值有一定的规律:
- 数组、切片、字符串返回索引和值。
- map 返回键和值。
- 通道(channel)只返回通道内的值。
func main() {c := make(chan int)wg := sync.WaitGroup{}wg.Add(2)go func() {defer wg.Done()for i := 0; i < 10; i++ {c <- rand.Intn(50)}close(out)}()go func() {defer wg.Done()for v := range c {fmt.Println(v)}}()wg.Wait()
}