Go 语言中的 switch 结构使用上更加灵活。它接受任意形式的表达式:
  
    
  
switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}
  如果执行完每个分支的代码后,还希望继续执行后续分支的代码,可以使用 fallthrough 关键字来达到目的
  
    
  
switch i {
    case 0: fallthrough
    case 1:
        f() // 当 i == 0 时函数也会被调用
}
  switch 语句的第二种形式是不提供任何被判断的值(实际上默认为判断是否为 true)
  
    
  
package main
import "fmt"
func main() {
    var num1 int = 7
    switch {
        case num1 < 0:
            fmt.Println("Number is negative")
        case num1 > 0 && num1 < 10:
            fmt.Println("Number is between 0 and 10")
        default:
            fmt.Println("Number is 10 or greater")
    }
}
//Number is between 0 and 10
  switch 语句的第三种形式是包含一个初始化语句:
  
    
  
switch result := calculate(); {
    case result < 0:
        ...
    case result > 0:
        ...
    default:
        // 0
}