golang并发编程之channel的遍历
方法1 for range
package mainimport "fmt"func main() {c := make(chan int)go func() {for i := 0; i < 10; i++ {c <- i}close(c)}()for v := range c {fmt.Printf("v: %v\n", v)}}
运行结果
方法2 for循环+if判断
package mainimport "fmt"func main() {c := make(chan int)go func() {for i := 0; i < 10; i++ {c <- i}close(c)}()for {if data, ok := <-c; ok {fmt.Printf("data: %v\n", data)} else {break}}
}
运行结果