Go的switch语句用于根据表达式值执行不同分支,比if-else更简洁。基本语法无需括号,匹配后自动终止;可省略表达式实现条件判断;支持多值case和fallthrough穿透;还可通过type断言判断接口类型,默认不穿透,需显式使用fallthrough。

在Golang中,switch语句是一种控制结构,用于根据变量或表达式的值执行不同的代码分支。它比多个if-else语句更清晰、简洁,特别是在处理多种可能情况时。
Go中的switch不需要括号,直接跟表达式即可。每个case后跟一个或多个值,用冒号结束。匹配成功后只执行对应分支,自动终止(无需break)。
示例:var day int = 3
switch day {
case 1:
    fmt.Println("星期一")
case 2:
    fmt.Println("星期二")
case 3:
    fmt.Println("星期三")
default:
    fmt.Println("其他")
}
输出为:星期三。
switch后面可以不写表达式,此时case后应为布尔条件。这种方式常用于替代复杂的if-else逻辑。
立即学习“go语言免费学习笔记(深入)”;
示例:x := 15
switch {
case x < 0:
    fmt.Println("负数")
case x >= 0 && x < 10:
    fmt.Println("个位数")
case x >= 10:
    fmt.Println("两位数或更大")
}
输出:两位数或更大。
一个case可以匹配多个值,用逗号分隔。如果希望继续执行下一个case,使用fallthrough关键字。
示例:grade := 'B'
switch grade {
case 'A', 'B', 'C':
    fmt.Println("及格")
case 'D':
    fmt.Println("需要补考")
fallthrough
default:
    fmt.Println("成绩无效或未通过")
}
当grade为'D'时,会输出两行:
因为fallthrough强制进入default分支。
switch还可用于判断interface{}的具体类型,常用于处理未知类型的参数。
示例:var value interface{} = "hello"
switch v := value.(type) {
case string:
    fmt.Println("字符串:", v)
case int:
    fmt.Println("整数:", v)
case nil:
    fmt.Println("空值")
default:
    fmt.Println("未知类型")
}
输出:字符串: hello。
基本上就这些。Go的switch灵活且安全,支持值匹配、条件判断、多值选择和类型断言,是流程控制中的实用工具。注意:默认不会穿透下一个case,如需穿透必须显式使用fallthrough。
以上就是如何在Golang中使用switch语句的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号