Go基础学习记录 - Go指南 - 流程控制语句:switch

{app.params.name}}{app.params.name}}{app.params.name}}

环境

go version go1.10.1 darwin/amd64

switch语句


Go的switch流程控制语句的使用如下

package main

import (
    "fmt"
    "runtime"
)

func main() {
    fmt.Println("Run Switch Control")
    switch os := runtime.GOOS; os {
    case "darwin":
        fmt.Println("OS X")
    case "linux":
        fmt.Println("Linux")
    default:
        fmt.Printf("%s", os)
    }
}


switch 的求值顺序

switch 的 case 语句从上到下顺次执行,直到匹配成功时停止。

switch i {
  case 0:
  case f():
}

在 i==0 时 f 不会被调用。看如下例子

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("什么时候是周六?")
    today := time.Now().Weekday()
    switch time.Saturday {
    case today + 0:
        fmt.Println("今天")
    case today + 1:
        fmt.Println("明天")
    case today + 2:
        fmt.Println("后天")
    default:
        fmt.Println("还要过几天")
    }
}


没有条件的 switch

没有条件的 switch 同 switch true 一样。这种形式能将一长串 if-then-else 写得更加清晰。实例如下

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("早上好")
    case t.Hour() < 17:
        fmt.Println("下午好")
    default:
        fmt.Println("晚上好")
    }
}

 

版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/13


版权声明

durban创作并维护的 小绒毛的足迹博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 小绒毛的足迹博客( https://www.xiaorongmao.com ),版权所有,侵权必究。

本文永久链接: https://www.xiaorongmao.com/blog/13