go语言中fallthrough用法

编程语言 幻水梦天 3个月前 (01-20) 119次浏览 已收录 0个评论 扫描二维码

Go 编程语言中 switch 语句的语法如下:

<a href="https://www.geluli.net/tag/switch/" title="查看更多关于 switch 的文章" target="_blank">switch</a> expr {
    case expr1:
        ...
    case expr2:
        ...
    default:
        ...
}

Go 的switch非常灵活,表达式不必是常量或整数,执行的过程从上至下,直到找到匹配项;而如果switch没有表达式,它会匹配 true。 Go 里面switch默认相当于每个 case 最后带有 break,匹配成功后不会自动向下执行其他 case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的 case 代码,fallthrough不会判断下一条 case 的 expr 结果是否为 true。

package main

import "fmt"

func main() {

    switch {
    case false:
            fmt.Println("我是第一个")
            <a href="https://www.geluli.net/tag/fallthrough/" title="查看更多关于 fallthrough 的文章" target="_blank">fallthrough</a>
    case true:
            fmt.Println("我是第二个")
            <a href="https://www.geluli.net/tag/fallthrough/" title="查看更多关于 fallthrough 的文章" target="_blank">fallthrough</a>
    case false:
            fmt.Println("我是第三个")
            <a href="https://www.geluli.net/tag/fallthrough/" title="查看更多关于 fallthrough 的文章" target="_blank">fallthrough</a>
    case true:
            fmt.Println("我是第四个")
    case false:
            fmt.Println("我是第五个")
            <a href="https://www.geluli.net/tag/fallthrough/" title="查看更多关于 fallthrough 的文章" target="_blank">fallthrough</a>
    default:
            fmt.Println("我是默认的")
    }
}

运行结果:

我是第二个
我是第三个
我是第四个

从以上代码输出的结果可以看出:switch 从第一个判断表达式为 true 的 case 开始执行,如果 case 带有 fallthrough,程序会继续执行下一条 case,且它不会去判断下一个 case 的表达式是否为 true。


所有电子书均来自网络!如果有侵犯版权的资源请尽快联系站长,我们会在24h内删除有争议的资源。
转载请注明原文链接:go语言中fallthrough用法
喜欢 (1)
[]
分享 (0)
幻水梦天
关于作者:
一事无成,一无是处。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址