Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > golang switch

golang switch的语法使用小结

作者:Lai助官方账号

本文主要介绍了golang switch的语法使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在 Go 语言中,switch 语句提供了一种根据表达式的值执行不同代码块的机制。它比多个 if-else 语句更清晰、更易于维护,尤其适用于多路分支的情况。

基本语法

switch expression {
case value1:
    // 表达式等于 value1 时执行的代码块
case value2:
    // 表达式等于 value2 时执行的代码块
...
default:
    // 以上条件都不满足时执行的代码块(可选)
}

示例代码

以下是一些 switch 语句的常见用法示例:

1. 基本的switch语句

package main

import "fmt"

func main() {
    day := 3

    switch day {
    case 1:
        fmt.Println("星期一")
    case 2:
        fmt.Println("星期二")
    case 3:
        fmt.Println("星期三")
    case 4:
        fmt.Println("星期四")
    case 5:
        fmt.Println("星期五")
    case 6:
        fmt.Println("星期六")
    case 7:
        fmt.Println("星期日")
    default:
        fmt.Println("无效的天数")
    }
}

2.不带表达式的switch

在 Go 中,switch 后面的表达式可以省略,此时相当于 switch true,常用于替代多个 if-else 语句。

package main

import "fmt"

func main() {
    num := 5

    switch {
    case num < 0:
        fmt.Println("负数")
    case num == 0:
        fmt.Println("零")
    case num > 0 && num < 10:
        fmt.Println("正数且小于 10")
    case num >= 10:
        fmt.Println("正数且大于或等于 10")
    default:
        fmt.Println("不可能的情况")
    }
}

3. 多值匹配

可以为一个 case 指定多个匹配值,值之间用逗号分隔。

package main

import "fmt"

func main() {
    grade := 'B'

    switch grade {
    case 'A', 'B', 'C':
        fmt.Println("成绩良好")
    case 'D':
        fmt.Println("成绩及格")
    case 'E', 'F':
        fmt.Println("成绩不及格")
    default:
        fmt.Println("无效的成绩等级")
    }
}

4. 类型判断

switch 还可以用于判断变量的类型,这在处理接口类型时非常有用。

package main

import "fmt"

func main() {
    var value interface{} = "Hello, Go!"

    switch v := value.(type) {
    case int:
        fmt.Printf("整数: %d\n", v)
    case string:
        fmt.Printf("字符串: %s\n", v)
    case bool:
        fmt.Printf("布尔值: %v\n", v)
    case nil:
        fmt.Println("空值")
    default:
        fmt.Printf("未知类型: %T\n", v)
    }
}

注意事项

希望这些示例能帮助你更好地理解和使用 Go 语言中的 switch 语句。

你希望在匹配某个 case 后,继续执行下一个 case 的代码块,而不是退出 switch 语句。这时就可以使用 fallthrough。

以下是一个使用 fallthrough 的示例:

package main

import "fmt"

func main() {
    day := 3

    switch day {
    case 1:
        fmt.Println("今天是星期一")
        fallthrough
    case 2:
        fmt.Println("明天是星期二")
        fallthrough
    case 3:
        fmt.Println("后天是星期三")
        fallthrough
    case 4:
        fmt.Println("大后天是星期四")
        fallthrough
    case 5:
        fmt.Println("再后天是星期五")
        fallthrough
    case 6:
        fmt.Println("又是星期六了")
        fallthrough
    case 7:
        fmt.Println("星期日到了")
    default:
        fmt.Println("无效的天数")
    }
}

输出

今天是星期一
明天是星期二
后天是星期三
大后天是星期四
再后天是星期五
又是星期六了
星期日到了

说明

注意事项

到此这篇关于golang switch的语法使用小结的文章就介绍到这了,更多相关golang switch内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文