跌入高朗

时间:2019-01-03 07:23:11

标签: go switch-statement fall-through

我是Golang的新手,我发现switch case语句不需要break语句即可停止评估案例。

那么,我想知道如何在go中实现这种失败行为?

1 个答案:

答案 0 :(得分:5)

确切地有一个fallthrough语句。

请参见以下示例:

fmt.Println("First round: without fallthrough")
switch 1 {
case 0:
    fmt.Println(0)
case 1:
    fmt.Println(1)
case 2:
    fmt.Println(2)
case 3:
    fmt.Println(3)
}

fmt.Println("Second round: with fallthrough")
switch 1 {
case 0:
    fmt.Println(0)
    fallthrough
case 1:
    fmt.Println(1)
    fallthrough
case 2:
    fmt.Println(2)
    fallthrough
case 3:
    fmt.Println(3)
}

输出(在Go Playground上尝试):

First round: without fallthrough
1
Second round: with fallthrough
1
2
3

(请注意,我没有在最后一个fallthrough中使用case语句,因为这将导致编译时错误:“无法在切换中遇到最终情况”