switch语句
最后更新于
简单的switch
语句:
注意,一个case
后面可以跟多个值。如上例的1和 3。
跟其他大多数语言(如Java或C++)不同,您不需要在一个case
之后放置break
语句来阻止接下来的case
的继续执行。
这种默认行为是缺陷(Bug)的常见来源。
相反,您可以在Go中使用fallthrough
语句来达成上述行为。
Go语言的switch比C++和Java这类语言的更灵活。
我们可以基于字符串做switch:
当case
语句后面都是布尔表达式时,switch
语句后面的表达式可以为空,而不止是常量。
case
的求值顺序如果多个case语句后面的表达式求值都为true,会发生什么?
例如上面的例子中,n=6时,既满足n > 0 && n%3 == 0
,也满足n >= 4
。
正如你所见,只有一个case
会被执行,最先定义的那个。
如果变量是interface类型的,您还可以基于它的底层类型进行switch: