【golang学习之旅】Go的 switch 分支语句

系列文章

【golang学习之旅】报错:a declared but not used
【golang学习之旅】Go 的基本数据类型
【golang学习之旅】Go 的循环结构
【golang学习之旅】Go里面 if 条件判断语句


目录

  • 系列文章
  • switch 分支
  • fallthrough 关键字
  • 无条件 switch


switch 分支

有些时候需要写很多的if-else来实现一些逻辑处理,这个时候代码看上去就很丑很冗长,而且也不易于以后的维护,这个时候switch就能很好的解决这个问题。

Go 的 switch 语句类似于 C、C++、Java、JavaScript 和 PHP 中的,不过 Go 只会运行选定的 case,而非之后所有的 case。 在效果上,Go 的做法相当于这些语言中为每个 case 后面自动添加了所需的 break 语句。在 Go 中,除非以 fallthrough 语句结束,否则分支会自动终止。 Go 的另一点重要的不同在于 switch 的 case 无需为常量,且取值不限于整数

在这里插入图片描述


fallthrough 关键字

switch-case 有个特殊的 fallthrough 用法,它会无条件的执行匹配到的下一个case。

Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。

integer := 6
switch integer {
case 4:fmt.Println("The integer was <= 4")fallthrough
case 5:fmt.Println("The integer was <= 5")fallthrough
case 6:fmt.Println("The integer was <= 6")fallthrough
case 7:fmt.Println("The integer was <= 7")fallthrough
case 8:fmt.Println("The integer was <= 8")fallthrough
default:fmt.Println("default case")
}

上面的程序将输出

The integer was <= 6
The integer was <= 7
The integer was <= 8
default case

无条件 switch

无条件的 switch 同 switch true 一样。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/6117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

esp32-cam 1. 出厂固件编译与测试

0. 环境 - ubuntu18 - esp32-cam - usb转ttl ch340 硬件连接 esp32-camch340板子U0RTXDU0TRXDGNDGND5V5V 1. 安装依赖 sudo apt-get install vim sudo apt install git sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial p…

Qt 信号槽中信号重名解决办法

1、类似与Qt4中的写法&#xff1a; 2、函数指针 3、泛型 connect(ui->combox, QOverload<int>::of(&QCombox::currentIndexChanged), this ,&mainwindow::onindexchange);

LLM应用:让大模型prompt总结生成Mermaid流程图

生成内容、总结文章让大模型Mermaid流程图展示&#xff1a; mermaid 美人鱼, 是一个类似 markdown&#xff0c;用文本语法来描述文档图形(流程图、 时序图、甘特图)的工具&#xff0c;您可以在文档中嵌入一段 mermaid 文本来生成 SVG 形式的图形 Prompt 示例&#xff1a;用横向…

33.Docker安装

Docker由CE和EE两个版本&#xff0c;CE是社区版免费&#xff0c;EE企业版收费。 Docker CE支持64位版本centos7,内核版本不低于3.10&#xff0c;Centos7满足最低内核要求&#xff0c;所以在centos7安装docker。 前期准备工作 使用虚拟机上安装Centos7系统&#xff0c;再安装…

001_Langchain

LangChain LangChain 是一个开源框架,旨在帮助开发者使用大型语言模型(LLMs)和聊天模型构建端到端的应用程序。它提供了一套工具、组件和接口,以简化创建由这些模型支持的应用程序的过程。LangChain 的核心概念包括组件(Components)、链(Chains)、模型输入/输出(Mode…

赶紧收藏!2024 年最常见 100道 Java 基础面试题(二十五)

上一篇地址&#xff1a;赶紧收藏&#xff01;2024 年最常见 100道 Java 基础面试题&#xff08;二十四&#xff09;-CSDN博客 四十九、什么是死锁&#xff1f; 死锁是计算机科学中一个重要的概念&#xff0c;尤其在并发编程和多线程环境中。在Java中&#xff0c;死锁同样是一…

《汇编语言》- 读书笔记 - 附注

《汇编语言》- 读书笔记 - 附注 附注1&#xff1a;Intel 系列微处理器的3种工作模式1. 实模式2. 保护模式保护模式 与 实模式 的主要区别寻址能力内存保护特权级别任务管理和虚拟内存 为何需要保护模式访问受保护资源 3. 虚拟 8086 模式4. 长模式&#xff08;Long Mode&#xf…

R语言学习—6—多元相关与回归分析

1、引子 xc(171,175,159,155,152,158,154,164,168,166,159,164) #身高 yc(57,64,41,38,35,44,41,51,57,49,47,46) #体重 par(marc(5,4,2,1)) #设定图距离画布边缘的距离&#xff1a;下5&#xff0c;左4&#xff0c;上2&#xff0c;右1 plot(x,y) 2、相关…

【C语言实现贪吃蛇】(内含源码)

前言&#xff1a;首先在实现贪吃蛇小游戏之前&#xff0c;我们要先了解Win32 API的有关知识 1.Win32 API Windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外&#xff0c;它同时也是一个很大的服务中心&#xff0c;调佣这个中心的各种服务&#xff08;每一…

conda的一些问题

我是windows&#xff0c;conda下载的包下载到了c盘的.conda文件夹下&#xff0c;这是为什么&#xff1f; Conda 在 Windows 系统上默认会在用户的主目录下创建一个 .conda 文件夹&#xff0c;用来存储一些临时文件和包的缓存。这个路径是由 Conda 的默认配置决定的&#xff0c…

电话号码的字母组合 【C++】【力扣刷题】

解题思路&#xff1a; 以第一个为例,digits “23”&#xff0c;表明从电话号码的按键中选取2和3这两个字符&#xff0c;然后去寻找它们各自所对应的字母&#xff0c;这里每一个数字字符所对应的字母的不同&#xff0c;0对应的是空字符&#xff0c;而1的话题目中讲到是不对应任…

【webrtc】MessageHandler 6: 基于线程的消息处理:StunRequest实现包发送和超时重传

G:\CDN\rtcCli\m98\src\p2p\base\stun_request.cc使用OnMessage 实现包的发送和包的超时重传StunRequest 一个StunRequest 代表是一个独立的请求的发送STUN消息 要不是发送前构造好的,要不就是按照需要构建的使用StunRequestManager: 每一个STUNRequest 携带一个交互id 写入m…

代码审查工具Gerrit简介

Gerrit是一个开源的代码审查和项目管理工具&#xff0c;特别为Git版本控制系统设计。它提供了一个基于Web的界面&#xff0c;使得开发者能够提交他们的更改供其他人审查&#xff0c;之后这些更改可以被接受并合并到项目中。Gerrit极大地促进了团队协作和代码质量的提升&#xf…

CUDA和显卡驱动

1.安装显卡驱动 https://www.nvidia.com/download/index.aspx?langen-us 由于我的显卡是RTX4060&#xff0c;因此先选择RTX40系列&#xff0c;然后选择RTX4060&#xff0c;进行安装 2.查看显卡对应的CUDA CUDA安装地址&#xff1a;https://developer.nvidia.com/cuda-toolk…

一文带你了解MySQL的索引分类

文章目录 ☃️分类☃️演示图☃️思考☃️总结 欢迎来到 请回答1024 的博客 &#x1f353;&#x1f353;&#x1f353;欢迎来到 请回答1024的博客 关于博主&#xff1a; 我是 请回答1024&#xff0c;一个追求数学与计算的边界、时间与空间的平衡&#xff0c;0与1的延伸的后端开…

【YOLO 系列】基于YOLO V8的27类蔬菜水果检测识别系统【python源码+Pyqt5界面+数据集+训练代码】

前言&#xff1a; 蔬菜水果的种类繁多&#xff0c;是人们日常生活中不可或缺的一部分。然而&#xff0c;在蔬菜水果的生产、销售和储存过程中&#xff0c;往往面临着诸多挑战&#xff0c;如品质检测、分类等问题。为了提高蔬菜水果行业的生产效率和产品质量&#xff0c;我们提…

【redis】redix在Linux下的环境配置和redis的全局命令

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如…

学习Rust的第25天:Rust中的mkdir

为了实现重建 GNU 核心实用程序的崇高目标&#xff0c;今天的工具是 mkdir 我们用来在 Linux 上创建目录的工具。让我们开始吧。 Pseudo Code 伪代码 args command_line_arguments remove the first element of the args vector if args.length 0 {print error_message } els…

STM32学习和实践笔记(24):PWM输出实验:呼吸灯

本实验所要实现的功能是&#xff1a;通过TIM3的CH1输出一个PWM信号&#xff0c;控制D7指示 灯由暗变亮&#xff0c;再由亮变暗&#xff0c;类似于人的呼吸。程序框架如下&#xff1a; &#xff08;1&#xff09;初始化PC6管脚为PWM输出功能 &#xff08;2&#xff09;PWM输出…

RAG应用全流程

RAG全流程 前提训练一个语义模型&#xff08;高精度&#xff0c;低精度&#xff09;训练一个大模型一个知识库一个精度高知识向量库&#xff08;知识分割后输入高精度语义模型得到&#xff09;一个精度低知识向量库&#xff08;知识分割后输入低精度语义模型得到&#xff09; 应…