• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    go语言中fallthrough的用法说明

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

    示例程序1:

    switch {
        case false:
            fmt.Println("The integer was = 4")
            fallthrough
        case true:
            fmt.Println("The integer was = 5")
            fallthrough
        case false:
            fmt.Println("The integer was = 6")
            fallthrough
        case true:
            fmt.Println("The integer was = 7")
            fallthrough
        case false:
            fmt.Println("The integer was = 8")
        default:
            fmt.Println("default case")
        }

    输出结果:

    The integer was = 5

    The integer was = 6

    The integer was = 7

    The integer was = 8

    问题:是否在switch最后一个分支使用fallthrough???

    有错误提示,显示:cannot fallthrough final case in switch

    fallthrough不能用在switch的最后一个分支。

    示例程序2:

    上述示例是true、false常量进行分支判断,看如下变量示例。

    s := "abcd"
        switch s[1] {
        case 'a':
            fmt.Println("The integer was = 4")
            fallthrough
        case 'b':
            fmt.Println("The integer was = 5")
            fallthrough
        case 'c':
            fmt.Println("The integer was = 6")
        default:
            fmt.Println("default case")
        }

    输出结果如下:

    The integer was = 5

    The integer was = 6

    更改为:

    s := "abcd"
        switch s[3] {
        case 'a':
            fmt.Println("The integer was = 4")
            fallthrough
        case 'b':
            fmt.Println("The integer was = 5")
            fallthrough
        case 'c':
            fmt.Println("The integer was = 6")
        default:
            fmt.Println("default case")
        }

    输出:

    default case

    总结:

    switch分支中使用变量进行判断的时,fallthrough正确的分支开始其作用。

    补充:【踩坑】golang的fallthrough大坑

    加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行,后面的条件并不会再判断了,?

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • Golang 编译成DLL文件的操作
    • golang调用c实现的dll接口细节分享
    • Golang如何调用windows下的dll动态库中的函数
    • go mod 使用私有gitlab群组的解决方案
    • django将图片保存到mysql数据库并展示在前端页面的实现
    • golang实践-第三方包为私有库的配置方案
    • 解决go mod私有仓库拉取的问题
    上一篇:Golang之sync.Pool使用详解
    下一篇:golang switch语句的灵活写法介绍
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    go语言中fallthrough的用法说明 语,言中,fallthrough,的,用法,