首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go switch/cases失败了吗?

问Go switch/cases失败了吗?
EN

Stack Overflow用户
提问于 2016-11-27 02:49:25
回答 2查看 34.7K关注 0票数 43

当您到达Go用例的末尾时会发生什么,它会失败到下一个用例,还是假设大多数应用程序都不想失败?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-27 04:20:40

不会,Go switch语句默认情况下不会失败。如果您确实希望它失败,则必须显式使用" fallthrough“语句。从spec

在case或default子句中,最后一个非空语句可以是(可能标记为) "fallthrough“语句,以指示控制应从此子句的末尾流向下一个子句的第一个语句。否则,控制流到"switch“语句的末尾。除了表达式开关的最后一个子句之外,"fallthrough“语句可以显示为所有子句的最后一个语句。

例如(对不起,我无论如何也想不出一个真实的例子):

代码语言:javascript
复制
switch 1 {
case 1:
    fmt.Println("I will print")
    fallthrough
case 0:
    fmt.Println("I will also print")
}

https://play.golang.org/p/va6R8Oj02z

票数 78
EN

Stack Overflow用户

发布于 2019-08-13 07:06:20

Break保留为默认值,但不保留fallthrough。如果您希望进入下一个案例进行匹配,则应明确提及fallthrough。

代码语言:javascript
复制
switch choice {
case "optionone":
    // some instructions 
    fallthrough // control will not come out from this case but will go to next case.
case "optiontwo":
   // some instructions 
default: 
   return 
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40821855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档