golang read chan的疑问

val, ok := <-ch

val := <-ch

如果在golang中read 一个close的chan, 是会拿到chan对应类型的零值, ok则是判断是否关闭chan的方法, 如果不利用ok, 好像一样可以解决问题?

阅读 1.6k
1 个回答

这个问题在map中也是一样的

value,ok := m["key"]

有了ok这个字段你就能知道,map中的指定key是否存在,这两个概念在业务上是不一样的。如果只取用value是否是零值,是没法判断是否存在(channel中对应是否是已经closed)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题