我是靠谱客的博主 醉熏橘子,最近开发中收集的这篇文章主要介绍Go语言switch语句,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Golang中的switch比起其他语言的switch更灵活,除了支持常规的切换,如下:

switch i { 
    case 0: 
        fmt.Printf("0") 
    case 1: 
        fmt.Printf("1") 
    case 2: 
        fallthrough 
    case 3: 
        fmt.Printf("3") 
    case 4, 5, 6: 
        fmt.Printf("4, 5, 6") 
    default: 
        fmt.Printf("Default") 
} 

运行上面的案例,将会得到如下结果:
i = 0时,输出0;
i = 1时,输出1;
i = 2时,输出3;

i = 3时,输出3;

i = 4时,输出4, 5, 6;
i = 5时,输出4, 5, 6;
i = 6时,输出4, 5, 6;
i = 其他任意值时,输出Default。

这里switch后面的表达式甚至不是必需的,如下代码:

package main

import(
    "fmt"
)


func main(){
    var score int = 65

    switch {
    case 0<=score&&score<60:
        fmt.Println("failed!!")
    case 60<=score&&score<80:
        fmt.Println("good!")
    case 80<=score&&score<=100:
        fmt.Println("perfect!!")

    }   
}

没有条件的 switch 同 switch true 一样,这一构造使得可以用更清晰的形式来编写长的 if-then-else 链。

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


package main

import "fmt"

func main() {

    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")
    case false:
            fmt.Println("The integer was <= 8")
            fallthrough
    default:
            fmt.Println("default case")
    }
}

执行结果:

The integer was <= 5

The integer was <= 6

The integer was <= 7

由此可以看出,switch从第一个expr为true的case开始执行,如果case带有fallthrough,程序会继续执行下一条case,不会再判断下一条case的expr,如果之后的case都有fallthrough,default出会被执行

最后

以上就是醉熏橘子为你收集整理的Go语言switch语句的全部内容,希望文章能够帮你解决Go语言switch语句所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部