发布于 2016-08-14 21:18:46 | 658 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的GO语言教程,程序狗速度看过来!

Go语言

Go是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。Go是谷歌2009年发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言。


这篇文章主要介绍了golang判断chan channel是否关闭的方法,结合实例形式对比分析了Go语言判断chan没有关闭的后果及关闭的方法,需要的朋友可以参考下

本文实例讲述了golang判断chan channel是否关闭的方法。分享给大家供大家参考,具体如下:

群里有朋友问,怎么判断chan是否关闭,因为close的channel不会阻塞,并返回类型的nil值,会导致死循环.在这里写个例子记录一下,并且分享给大家

如果不判断chan是否关闭

Notice: 以下代码会产生死循环

package main

import (

    "fmt"

)

func main() {

    c := make(chan int, 10)

    c <- 1

    c <- 2

    c <- 3

    close(c)

    for {

        fmt.Println(<-c)

    }

}

判断短chan是否关闭

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)

    }

}

希望本文所述对大家Go语言程序设计有所帮助。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务