Go-关键词-fallthrough

本文解析fallthrough在Go语言switch语句中的使用,演示代码示例,解释其执行流程,并提供代码优化建议,探讨如何用简洁case列表替代fallthrough。

fallthrough

概念

fallthrough只能用于switch中且只能在每个case分支中最后一行出现,作用是如果这个case分支被执行,将会继续执行下一个case而不会判断下一个分支的case条件是否成立。

代码示例

代码

package main

func main() {
	age := 10

	switch age {
	case 9, 10, 11:
		println("分支9,10,11")
		fallthrough
	case 0, 1, 2:
		println("分支0,1,2")
	case 3, 4, 5:
		println("分支3,4,5")
	case 6, 7, 8:
		println("分支6,7,8")
	}
}

输出结果

分支9,10,11
分支0,1,2

解读

age值为10,所以case 9,10,11将会执行,但后面跟了fallthrough关键字,虽然case 0,1,2不成立,但受fallthrough影响其依然会被执行,执行完并退出。

建议

代码可优化为如下:

func main() {
	age := 10

	switch age {
	case 9, 10, 11, 0, 1, 2:
		println("分支9,10,11")
		println("分支0,1,2")
	case 3, 4, 5:
		println("分支3,4,5")
	case 6, 7, 8:
		println("分支6,7,8")
	}
}

其实实际编码过程中fallthrough的应用并不多,可利用更加明确的case列表取代fallthrouth,因此在真正打算使用fallthrough之前,可以先想想能否使用更为简洁、清晰的case表达式列表替代。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值