Go语言switch case分支执行顺序是什么?多true分支输出解析
Go无表达式switch的执行规则说明
这段代码的输出是1。
Go语言中不带条件表达式的switch(即switch {})执行规则非常明确:
- 从上到下依次检查每个
case的条件表达式 - 一旦匹配到第一个结果为
true的case,就执行该分支的代码,执行完成后直接退出整个switch结构,后续case不会被检查或执行 - 不存在“伪随机选取表达式”的情况,执行逻辑是完全确定的,严格遵循从上到下的顺序
你在Go Playground的测试结果是正确的:第一个case true条件成立,执行fmt.Println(1)后就跳出switch,第二个case不会被触发。
如果需要让多个case分支依次执行,可以显式使用fallthrough关键字,示例如下:
switch { case true: fmt.Println(1) fallthrough case true: fmt.Println(2) }
这段代码会依次输出1和2。
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

