go语言中fallthrough的用法说明
作者:腾信@迪克猪 发布时间:2024-04-23 09:33:47
标签:go,fallthrough
fallthrough:Go里面switch默认相当于每个case最后带有break,匹配成功后不会自动向下执行其他case,而是跳出整个switch, 但是可以使用fallthrough强制执行后面的case代码。
示例程序1:
switch {
case false:
fmt.Println("The integer was <= 4")
fallthrough
case true:
fmt.Println("The integer was <= 5")
fallthrough
case false:
fmt.Println("The integer was <= 6")
fallthrough
case true:
fmt.Println("The integer was <= 7")
fallthrough
case false:
fmt.Println("The integer was <= 8")
default:
fmt.Println("default case")
}
输出结果:
The integer was <= 5
The integer was <= 6
The integer was <= 7
The integer was <= 8
问题:是否在switch最后一个分支使用fallthrough???
有错误提示,显示:cannot fallthrough final case in switch
fallthrough不能用在switch的最后一个分支。
示例程序2:
上述示例是true、false常量进行分支判断,看如下变量示例。
s := "abcd"
switch s[1] {
case 'a':
fmt.Println("The integer was <= 4")
fallthrough
case 'b':
fmt.Println("The integer was <= 5")
fallthrough
case 'c':
fmt.Println("The integer was <= 6")
default:
fmt.Println("default case")
}
输出结果如下:
The integer was <= 5
The integer was <= 6
更改为:
s := "abcd"
switch s[3] {
case 'a':
fmt.Println("The integer was <= 4")
fallthrough
case 'b':
fmt.Println("The integer was <= 5")
fallthrough
case 'c':
fmt.Println("The integer was <= 6")
default:
fmt.Println("default case")
}
输出:
default case
总结:
switch分支中使用变量进行判断的时,fallthrough正确的分支开始其作用。
补充:【踩坑】golang的fallthrough大坑
加了fallthrough后,会直接运行【紧跟的后一个】case或default语句,不论条件是否满足都会执行,后面的条件并不会再判断了,?
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://www.cnblogs.com/zsy/p/6741902.html


猜你喜欢
- 1.下载安装pyqt5工具包以及配置ui界面开发环境pip install PyQt5pip install PyQt5-tools2.点击
- 一、背景近期项目即将开展,计划第一步就是实现数据的可视化,所以先学习一下数据展示相关Demo。选用Python2.7与Matplotlib来
- 本文实例为大家分享了php bootstrap实现简单登录的方法,供大家参考,具体内容如下所有文件 记住是获取name键值对 from 里面
- Numpy中提供了concatenate,append, stack类(包括hsatck、vstack、dstack、row_stack、c
- 本文实例讲述了python简单分割文件的方法。分享给大家供大家参考。具体如下:有的网站在上传文件时对文件大小有限制,因此可以将大文件分割成多
- SSI是英文Server Side Includes的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI就是在HTML文件中,可
- 1、类有两个方法,一个是 new,一个是 init,有什么区别,哪个会先执行呢?class test(object): &nb
- 大家好!我是 Sergey Kamardin,是 Mail.Ru 的一名工程师。本文主要介绍如何使用 Go 开发高负载的 WebSocket
- 最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧。获取文本的方式有很多,比如从网上下载现成的文本文档,
- 一、问题原因(如果不是第一次使用pycharm,我觉得可以跳过这一章)我是升级以后,在用pycharm打开以前的项目就出现报错了;很明显是环
- 测试1deco运行,但myfunc并没有运行def deco(func): print 'bef
- 最近用python写了一个远程监控的程序,主要功能有:1.用邮件控制所以功能2.可以对屏幕截图,屏幕截图发送到邮箱3.可以用摄像头获取图片,
- 在对数值进行格式化的时候,一个常见的问题是按照千分位格式化,网上对这个问题已经有很多种解决方法了,还可以利用Array.prototype.
- 使用drop函数删除dataframe的某列或某行数据:drop(labels, axis=0, level=None, inplace=F
- 在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。这个表现十分像
- python里的super().init()有什么用?对于python里的super().__init__()有什么作用,很多同学没有弄清楚
- 本文实例讲述了Python实现的逻辑回归算法。分享给大家供大家参考,具体如下:使用python实现逻辑回归Using Python to I
- 什么是Tkinter?Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用
- 为什么要讲 __repr__在 Python 中,直接 print 一个实例对象,默认是输出这个对象由哪个类创建的对象,以及在内存中的地址(
- 废话不多说,直接看问题,使用过 Python 中的标准库 zipfile 解压过 zip&