若是不判断chan是否关闭spa
Notice: 如下代码会产生死循环code
代码以下:blog
package main import ( "fmt" ) func main() { c := make(chan int, 10) c <- 1 c <- 2 c <- 3 close(c) for { fmt.Println(<-c) } }
判断短chan是否关闭
it
package main import ( "fmt" ) func main() { c := make(chan int, 10) c <- 1 c <- 2 c <- 3 close(c) for { i, isClose := <-c if !isClose { fmt.Println("channel closed!") break } fmt.Println(i) } }