Go -- 判断chan channel是否关闭的方法

若是不判断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)
    }
}
 
相关文章
相关标签/搜索