【Golang】Golang switch 的默认case是如何实现的?

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:

  1. 写在case语句块最后
  2. 当所有case为false时执行
  3. 是可选的,但是必须在所有的case之后
  4. 只有在其他case都不匹配时才执行
  5. 充当catch-all的角色