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

分类: 计算机技术
推荐阅读:
ettercap扫描不到主机的解决方法 本文将详细讲解在Kali系统下使用Ettercap图形界面模式时扫描不到主机的问题,并提供问题排除方法;
Golang逐行读取文本文件 当文件过大,不适合一次性载入内存,且文件每行都包含特定信息时,我们就需要逐行读取文件来保证程序的性能;
Python type()函数 type() 函数用于获取对象的类型,或者动态地创建一个新的类。其语法如下:
Rust实现字符串MD5加密 本文将使用Rust语言rust-crypto库实现字符串的MD5加密;
从Nginx日志中提取UserAgent、IP等信息 有时我们需要用到大量UserAgent信息,而Nginx日志文件中包含了海量真实的UserAgent,从Nginx文件中提取所有UserAgent信息就很有必要;
Python issubclass()函数 在Python中,issubclass()函数用于判断一个类是否是另一个类的子类。