007_go語言中的switch語句
阿新 • • 發佈:2018-03-28
imp for code sun BE 發現 演示 Go語言 time
代碼演示
package main
import "fmt"
import "time"
func main() {
i := 2
fmt.Print("write ", i, " as ")
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
}
switch time.Now().Weekday() {
case time.Saturday, time.Sunday:
fmt.Println("It‘s the weekend" )
default:
fmt.Println("It‘s a weekday")
}
t := time.Now()
switch {
case t.Hour() < 12:
fmt.Println("It‘s before noon")
default:
fmt.Println("It‘s after noon")
}
whatAmI := func(i interface{}) {
switch t := i.(type) {
case bool :
fmt.Println("I‘m a bool")
case int:
fmt.Println("I‘m an int")
default:
fmt.Printf("Don‘t know type %T\n", t)
}
}
whatAmI(true)
whatAmI(1)
whatAmI("hey")
}
代碼運行結果
write 2 as two
It‘s a weekday
It‘s after noon
I‘m a bool
I‘m an int
Don‘t know type string
代碼解讀:
- switch聲明的表達式通過條件來去往多個分支執行語句
- 第一個部分的經典的switch表達式
- 也可以用逗號來分割多個條件語句
- 如果switch後面沒有跟上條件表達式,那麽就相當於另一個if/else的表達式變形
- 一個類型方式的switch可以用類型來替代值。可以用這個方式來發現接口的類型。
007_go語言中的switch語句