天道酬勤,学无止境

break

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

坑,以下例子中,原本以为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标签处开始执行 } }来源

2021-03-26 22:25:39    分类:博客    golang    break   golang    go