go语言中的for range

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

 

你可能感兴趣的:(golang)