Go进阶05 fallthrough

2017-09-04 11:50:20
fallthrough用法

Go里边的switch默认每个case匹配成功后不会自动向下执行其他case,直接跳出switch,fallthrough强制执行后边的case代码,fallthrough不对下一条的case表达式进行判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package main

import "fmt"

func main() {
switch a:=10; {
case a >= 9:
fmt.Println(">=9")
fallthrough
case a >= 10:
fmt.Println(">=10")
fallthrough
case a >= 15:
fmt.Println(">=15")
fallthrough
case a >= 20:
fmt.Println(">=20")
fallthrough
default:
fmt.Println("default")
}

}

[tiger@bogon go]$ go run fallthrough.go
>=9
>=10
>=15
>=20
default

fallthrough可不可以放到最后一个呢,我们在default里添加之后,我们运行一下看看

1
2
3
[tiger@bogon go]$ go run fallthrough.go 
# command-line-arguments
./fallthrough.go:21: cannot fallthrough final case in switch
总结

fallthrough:Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码
fallthrough不能用在switch最后一个分支


您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。