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)。
相关推荐
码界筑梦坊1 分钟前
325-基于Python的校园卡消费行为数据可视化分析系统
开发语言·python·信息可视化·django·毕业设计
多恩Stone4 分钟前
【RoPE】Flux 中的 Image Tokenization
开发语言·人工智能·python
李日灐6 分钟前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
Risehuxyc15 分钟前
备份三个PHP程序
android·开发语言·php
lly20240621 分钟前
PHP Error: 常见错误及其解决方法
开发语言
网安墨雨22 分钟前
Python自动化一------pytes与allure结合生成测试报告
开发语言·自动化测试·软件测试·python·职场和发展·自动化
毕设源码李师姐24 分钟前
计算机毕设 java 基于 java 的图书馆借阅系统 智能图书馆借阅综合管理平台 基于 Java 的图书借阅与信息管理系统
java·开发语言·课程设计
忆~遂愿24 分钟前
Runtime 上下文管理:计算实例的生命周期、延迟最小化与上下文切换优化
java·大数据·开发语言·人工智能·docker
沐知全栈开发25 分钟前
PostgreSQL中的AND和OR操作符
开发语言
1尢晞130 分钟前
Java学习
java·开发语言