case的进入条件

来源:7-4 Go语言-select语句

昵称叫啥都行

2017-08-01 18:02

close(ch4)后,下一次循环还会进入case语句吗?就算没有close,ch4也是空的了啊。这里不太明白

写回答 关注

2回答

  • tom_0
    2019-05-03 11:30:34

    其实case可以理解为尝试读取ch4,这时会发生两种情况,一种是读取到数据,一种是没读取到数据,如果读取不到数据,则default条件成立;如果读取到数据,这时又分为两种情况,一种是读取正常的数据,且通道也正常(ok为true);另外一种情况是通道关闭了,这时读取到的值是:e为零值,这里为int的0,然后ok为false,表示通道已经关闭。所以,如果没有close,第三次循环就会又进入 default 语句,然后ch4会再次被赋值,在第四次执行时,再次输出1

    慕姐9075... 回复慕粉3536...

    通道初始化之后,里面不放值是没有值的。

    2020-04-18 13:27:31

    共 2 条回复 >

  • Uranux
    2017-08-02 16:46:11

    case和ch4是否关闭并没有关系,即使ch4关闭,循环依旧会继续执行。

    ch4为空和ch4被关闭是两种情况。

    qq_Yiz...

    2222

    2017-11-25 15:35:41

    共 1 条回复 >

Go语言第一课

Go语言入门教程,编程之必备知识扩散,打好Go语言编程基础

108011 学习 · 153 问题

查看课程

相似问题