当您到达Go案例的结尾时,会遇到下一个案例,还是假设大多数应用程序不想失败,会发生什么?
不,默认情况下,Go switch语句不会通过。如果 确实 希望其失败,则必须显式使用“ fallthrough”语句。从规格:
在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