加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang break语句可以break掉select,switch,for

发布时间:2020-12-16 09:34:46 所属栏目:大数据 来源:网络整理
导读:坑,以下例子中,原本以为close掉done channel后,循环会退出。但事实上会进入死循环 for { select { case packet := -s.avPacketChan: s.sendPacket(packet) case -s.done: //终止channel break } } 原因: [A "break" statement terminates execution of th
坑,以下例子中,原本以为close掉done channel后,循环会退出。但事实上会进入死循环

for {
        select {
        case packet := <-s.avPacketChan:
            s.sendPacket(packet)
        case  <-s.done: //终止channel
            break
        }
    }

原因:
[A "break" statement terminates execution of the innermost "for","switch" or "select" statement.

官方文档](https://golang.org/ref/spec#Break_statements)
BreakStmt = "break" [ Label ] .
If there is a label,it must be that of an enclosing "for","switch" or "select" statement,and that is the one whose execution terminates (§For statements,§Switch statements,§Select statements).

L:
  for i < n {
      switch i {
      case 5:
          break L // 从L标签处开始执行
      }
  }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读