跳到主要内容

for select

  • for循环select时,如果其中一个case通道已经关闭,则每次都会执行到这个case。
  • 如果select里边只有一个case,而这个case被关闭了,则会出现死循环。

怎么样才能不读关闭后通道

x, ok := <-c 返回的值里第一个x是通道内的值,ok是指通道是否关闭,当通道被关闭后,ok则返回false,因此可以根据这个进行操作。

如果select里只有一个已经关闭的case,会怎么样?

  • 可以看出只有一个case的情况下,则会死循环