Do Go开关/箱子是否通过?

问题描述 投票:5回答:1

当你到达Go案例结束时会发生什么,它是否会落到下一个案例,或者假设大多数应用程序不想通过?

go switch-statement
1个回答
15
投票

不,Go开关语句默认不会失效。如果您确实想要它,那么您必须明确使用“fallthrough”语句。来自spec

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

例如(对不起,我不能为我的生活想到一个真实的例子):

switch 1 {
case 1:
    fmt.Println("I will print")
    fallthrough
case 0:
    fmt.Println("I will also print")
}

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

© www.soinside.com 2019 - 2024. All rights reserved.