Golang中关键字fallthrough在switch语句里的用法

和C语言不同,在Go语言里的switch语句中,是不需要使用break来退出一个case的。也就是说,case执行完成后,是不会继续向下匹配的。

我们可以使用关键字fallthrough进行执行下一个case,且fallthrough不会判断下一个case的条件。换句话说,不论下一个case是否被匹配,都会被执行。

package main

import (
	"fmt"
)

func main() {
	p := fmt.Println

	a := 1
	switch a {
	case 0:
		p(0)
	case 1:
		p(1)
		fallthrough
	case 2:
		p(2) //因为在上一个case中使用了fallthrough关键字,这个case就算条件不匹配也会被执行
	case 3:
		p(3)
	}
}

程序会输出:1 2

如果fallthrough后没有case,则会产生cannot fallthrough final case in switch的错误。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1482.html

分类: 计算机技术
推荐阅读:
Pyinstaller写入版本信息 使用pyinstaller打包的python程序默认是不包含版本信息的,那么要怎么添加版本信息呢?
Golang中imported and not used:这类错误解决办法 在Golang中,比较容易碰到诸如 imported and not used: "time" 这样的错误;在这里表示你导入了一个time包却没有使用它;
使用pip安装Python PIL库的正确方法 正确使用pip工具安装Python中PIL库的方法如下:
Python实现线性搜索(linear search) 比如说我有数组data,1000个元素,要从里面找x;线性搜索,就是从头找到尾,速度最慢,但是适用性最广。
Python实现猜拳小游戏 曾经给一个小屁孩做的作业,放出来分享。。。实现思路: 定义一个玩家类;实现获取用户的输入。 定义一个机器人类;实现机器人的输入。 定义一个裁判类;裁判判断双方胜负。 定义游戏桌面;实现游戏的启动和管理。
Python使用langid库来识别字符串语言 python使用 langid 库来实现识别字符串是什么语言;langid 是第三方库,需要我们自己安装