管道关闭是否能读写?

题目来源: 百度、深信服、微步、滴滴

答案1:

  • 往已关闭的channel写入会引发panic;

  • 读已关闭的channel能一直读到东西,但是读到的内容根据通道内关闭前是否有元素而不同。

1)如果chan关闭前,buffer内有元素还未读,会正确读到chan内的值,且返回的第二个bool值(是否读成功)为true。
2)如果chan关闭前,buffer内有元素已经被读完,chan内无值,接下来所有接收的值都会非阻塞直接成功,返回 channel 元素的零 值,但是第二个bool值一直为false。