DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 对已关闭的 channel 读写会怎样?如何安全退出接收循环

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

① 读已关闭 channel:立即返回零值,v, ok := <-ch 中 ok=false(正确退出方式);② 向已关闭 channel 发送:panic(send on closed channel);③ 重复 close:panic(close of closed channel);④ 已关闭的 channel 接收完缓冲数据后返回零值。风险:无缓冲且已关闭时读会一直返回零值,若没检查 ok 会误当正常数据。规范:发送方 close,接收方用 range 或 ok 模式安全退出。

下载推广海报

圈内讨论推广海报

《Go 对已关闭的 channel 读写会怎样?如何安全退出接收循环》完整推广海报
REPLIES

回复

0 条回复
暂无回复。