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

分类: 计算机技术
推荐阅读:
Pyside6.QtWidgets.QApplication详细教程 PySide6.QtWidgets.QApplication类用于管理GUI应用程序的控制流和主要设置;
C程序计算二阶行列式的值 本文将使用C语言编写程序计算二阶行列式的值;程序通过定义一个2*2数组用于存储输入的二阶行列式;再通过前文的公式计算出二阶行列式的值;
Python any()函数 any()是 Python 内置函数之一,接受一个可迭代对象(例如列表、元组、集合或生成器)作为参数,如果至少有一个元素在逻辑上等价于 True,则返回 True,否则返回 False。
Rust toml::Table详细用法 在Rust中,toml::Table是一个代表TOML表(table)的结构体,可以使用它来访问和操作TOML格式的数据。toml::Table结构体可以看作是一个HashMap,它将TOML表的键和值映射到一个哈希表中。TOML表是TOML格式数据的核心,它表示一组键值对,其中每个键都是一个字符串,对应一个值。
Python字符串split()方法 在使用Python处理字符串时,你可能需要将字符串拆分为若干个子字符串;Python中的字符串方法split()可以帮助你完成这个任务。
Golang中imported and not used:这类错误解决办法 在Golang中,比较容易碰到诸如 imported and not used: "time" 这样的错误;在这里表示你导入了一个time包却没有使用它;