通过 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()
}