fallthrough
fallthrough关键字只能用在switch中。且只能在每个case分支中最后一行出现,作用是如果这个case分支被执行,将会继续执行下一个case分支,而不会去判断下一个分支的case条件是否成立。下边来一段示例:
package main
import "fmt"
func main() {
switch "a" {
case "a":
fmt.Println("匹配a")
fallthrough
case "b":
fmt.Println("a成功了,也执行b分支")
case "c":
fmt.Println("a成功了,c分支会执行吗?")
default:
fmt.Println("默认执行")
}
}
输出信息是:
匹配a
a成功了,也执行b分支
switch选择器的变量值是"a",所以,case ”a"分支代码将会被执行,case "a"分支最后使用了关键字fallthrough,虽然下一个case “b"条件不成立,但是case "b"由于受到fallthrough的影响,其分支中的代码仍然被执行,当case "b"分支执行完成后,由于case "b"最后一行没有使用fallthrough,所以switch选择器退出执行。