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

分类: 计算机技术
推荐阅读:
C语言中struct和typedef struct的用法和不同 在C语言中struct和typedef struct创建的结构体并没有什么不同,只是使用typedef后可以为结构体创建一个别名;
Windows安装Visual Studio Code Visual Studio Code 是一个运行于Mac OS、Windows、Linux之上的,针对于编写现代Web 和运用的跨平台源代码编辑器;
VirtualBox的无缝模式真是太酷了 VirtualBox的无缝模式真的很酷,可以让虚拟机中的系统和Windows系统共享一个窗口,具体是个什么效果,请看下图:
让Linux终端像电影里一样下起数字雨 在Linux系统里,如果你想要实现电影里的数字雨,一条命令即可:
Python将任意维度的不规则列表展平成一维列表 本文使用Python将任意维度的不规则列表展平成一维列表;
Python计算圆周率,精确到n位 本文将使用Python计算圆周率,可精确到n位,n值越大精度越高。