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)。
相关推荐
m0_734571765 分钟前
深入理解C++ 析构函数<四>虚析构函数
开发语言·c++
皓月盈江7 分钟前
Linux系统使用VSCode搭建GO开发环境
linux·vscode·ubuntu·golang·debian
芒鸽9 分钟前
把 Agent 运行时做成插件系统:agent-harness(openJiuwen Rust版) 的实践
开发语言·后端·rust
Brilliantwxx11 分钟前
【STM32】 I2C 外设内部硬件结构和状态位
开发语言·stm32·单片机·嵌入式硬件
小七在进步15 分钟前
类和对象(二)
java·开发语言
CHHH_HHH16 分钟前
【Linux系统篇】进程间通信揭秘:从管道到共享内存
linux·服务器·c语言·开发语言·后端·ubuntu
写后端的胖头鱼24 分钟前
【高频面试题】面试题里常出现的Bitmap是什么(附源码和多种场景)
java·开发语言·面试·位图·bitmap
学习智者26 分钟前
《玄》IDE v3.8.2重磅发布:数据外置+全链路优化
开发语言·c++·ide·中文语言 玄
mldong32 分钟前
Node 开发者也有自己的轻量工作流引擎了:npm i 一行,5 分钟跑通一条审批流
javascript·后端·typescript
考虑考虑9 小时前
cmd局部设置java变量
运维·后端·自动化运维