zoukankan      html  css  js  c++  java
  • 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???

    image

    有错误提示,显示: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正确的分支开始其作用。

  • 相关阅读:
    11g 配置 dgmgrl 以及报错 DataGuard ORA-00313,
    java三种匿名的方式开启线程
    java 四种方式实现字符流文件的拷贝对比
    java中过滤查询文件
    通过Java实现斗地主
    java中Map的entrySet 和keySet的使用
    python3列表推导式和生成器。
    python的特殊方法总结
    python3 定义向量运算
    python3模拟扑克牌
  • 原文地址:https://www.cnblogs.com/zsy/p/6741902.html
Copyright © 2011-2022 走看看