Golang中的switch语句支持default作为默认case:
switch {
case condition1:
statement1
case condition2:
statement2
default:
default_statement
}
- 如果condition1或者condition2成立,对应的case会被执行
- 如果所有condition都不成立,default case会被执行
default的实现机制是:
一、写法
default写在case语句块的最下方:
switch i := 10; i {
case 1:
case 2:
default:
// 代码
}
二、机制
- 当switch条件为true时,测试每个case条件
- 如果所有case条件为false, 则执行default语句块
三、特点
- default case是可选的,但是必须最后一个
- 只有在其他所有case不匹配时,才会执行
- 可以有多个case,但只有一个default
四、用途
主要用于处理所有其他情况,充当catch-all(捕获所有)的角色:
switch {
case x < 0:
return false
case x == 0:
return true
default:
// 其他情况
return false
}
总的来说, Go 中 default case:
- 写在case语句块最后
- 当所有case为false时执行
- 是可选的,但是必须在所有的case之后
- 只有在其他case都不匹配时才执行
- 充当catch-all的角色