Golang fallthrough语句
使用 fallthrough 会强制执行后面的 case 语句,并且不会判断下一条 case 的表达式结果是否为 true。
package main import "fmt" func main() { cond := 1 switch cond { case 1: fmt.Println("1、满足条件 case") fallthrough case 2: fmt.Println("2、不满足条件 case") default: fmt.Println("3、默认 case") } }
以上代码执行结果为:
1、满足条件 case 2、不满足条件 case
从以上代码输出的结果可以看出:switch 满足 case 的第一个判断表达式 ,开始执行,因为 ”case 1“ 语句带有 fallthrough,程序会继续执行下一条 case 语句,且它不会去判断下一个 case 的表达式是否为 true。
执行完 ”case 2“ 语句后,由于 ”default” 语句没有带有 fallthrough,switch 执行结束。
我们再看一个范例:
package main import "fmt" func main() { cond := 1 switch cond { case 1: fmt.Println("1、满足条件 case") fallthrough case 2: fmt.Println("2、不满足条件 case") fallthrough default: fmt.Println("3、默认 case") } }
以上代码执行结果为:
1、满足条件 case 2、不满足条件 case 3、默认 case
因为 ”case 2“ 语句后带有 fallthrough,所以就会继续执行下一条 default 语句。
iota 是 Go 语言的一个保留字,用作常量计数器。iota 具有自增特性,可以简化数字增长的常量定义。iota 是一个具有魔法的关键字,往往令初学者难以理解其原理和使用方法。 1. 书写方法正确写法 ...