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语言assert()宏:在代码中插入检查点 在C语言中,assert()函数用于在代码中插入检查点。这个函数接受一个表达式作为参数,如果表达式的值为假,那么程序会先打印错误信息(这些信息中包含程序的名称、源代码的文件名、行号、以及表达式),然后调用abort()函数来停止程序的执行。
CreateThread()创建线程传递SOCKET参数 使用CreateThread()创建线程传递SOCKET参数的正确方法如下:
一定有你不知道的Python技巧 Python一直以代码简洁著称;想写出艺术般的代码,需要你掌握各种Python技巧,这些技巧有些是语言特性,有些则是广大程序员的经验心得;今天作者就给大家网罗了一些Python技巧,一起来看看吧。
MySQL ASCII()函数 ASCII(str)函数返回字符串str第一个字符的ASCII码;如果str是NULL则返回NULL;
Error establishing a database connection解决办法 最近在学习网络安全方面的内容,需要在低版本的WordPress中复现漏洞,这里记录一次安装4.2版本的WordPress时出现的 Error establishing a database connection 错误的处理过程;