1. 程式人生 > >007_go語言中的switch語句

007_go語言中的switch語句

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語句