switch


分支控制 switch后面可以是表达式或类型。如果switch后面没有表达式或类型,默认为true。计算switch后面的表达式,从左到右、从上到下计算case后面的表达式,第一个和switch表达式相等的case分支将被执行。
switch.go

package main
import "fmt"
  
func version() int {
    return 3
}
  
func main() {
    switch i := 3; true {
        case i > 1:
            fmt.Printf("i > 1 \n")
        case i  > 2: 
            fmt.Printf("i > 2 \n")
        default:
            fmt.Printf("default \n")
    }
    
    var t interface{}
    t = version()
    switch t.(type) {
        case nil:
            fmt.Printf("t is nil \n")
        case int:
            fmt.Printf("t is int \n")
    }
}


go keyword switch