Go语言基础--switch

在Go语言中,switch语句是一种非常强大的控制流结构,它允许一个变量的值与多个case进行比较,并根据匹配的结果执行不同的代码块。与C、C++或Java中的switch不同,Go语言的switch更灵活,支持没有显式条件的switch(此时它类似于多个if-else的集合),以及"fallthrough"机制,允许不显式中断时继续执行下一个case。

switch 表达式 {
case 值1:
// 当表达式的值等于值1时,执行这里的代码
case 值2:
// 当表达式的值等于值2时,执行这里的代码
...
default:
// 如果没有任何case匹配,执行这里的代码
}

示例

基本的switch语句

package main

import "fmt"

func main() {

i := 2

switch i {

case 1:

fmt.Println("one")

case 2:

fmt.Println("two")

case 3:

fmt.Println("three")

default:

fmt.Println("other")

}

}

输出 two

省略表达式的switch

package main

import "fmt"

func main() {

i := 2

switch {

case i == 1:

fmt.Println("one")

case i == 2:

fmt.Println("two")

default:

fmt.Println("other")

}

}

输出 two

使用fallthrough

package main

import "fmt"

func main() {

switch {

case false:

fmt.Println("false case")

fallthrough

case true:

fmt.Println("true case")

default:

fmt.Println("default case")

}

}

输出 true case

注意事项

  • 如果switch语句中省略了表达式,那么它相当于switch true,此时每个case后面都应该跟一个条件表达式。
  • fallthrough允许case之间的连续执行,但通常要谨慎使用,因为它可能导致意外的行为。
  • switch可以处理任何类型的表达式,包括字符串和自定义类型。
  • Go语言的switch比传统的switch更灵活,因为它不需要break来阻止执行流入下一个case(除非使用了fallthrough)。
相关推荐
Chester_19997 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
2601_962055978 小时前
跟据spring boot版本,查看对应的tomcat,并查看可支持的tomcat的版本范围
spring boot·后端·tomcat
EXI-小洲8 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
会周易的程序员9 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm
机器视觉知识推荐、就业指导9 小时前
为什么老说“纯 Qt 没啥就业市场”?
开发语言·qt
telepan9 小时前
Qt 开发避坑与性能指南:如何优雅、安全地定义全局常量字符串?
开发语言·qt
m0_695251499 小时前
Qt MaintenanceTool 使用国内镜像加速下载(超详细教程)
开发语言·qt
Lost of 程序猿9 小时前
ASP.NET Core API 幂等性设计深度实战:从一次重复申领事故说起
后端·asp.net
大衛說10 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
QQ_216962909610 小时前
【源码编号:project79475】SpringBoot校内二手交易平台:商品发布、分类检索、留言交流、订单管理全流程实战
java·spring boot·后端