欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go语言中的switch用法实例分析

程序员文章站 2022-08-29 23:18:37
本文实例讲述了go语言中的switch用法。分享给大家供大家参考。具体分析如下: 这里你可能已经猜到 switch 可能的形式了。 case 体会自动终止,除非用 fa...

本文实例讲述了go语言中的switch用法。分享给大家供大家参考。具体分析如下:

这里你可能已经猜到 switch 可能的形式了。
case 体会自动终止,除非用 fallthrough 语句作为结尾。

复制代码 代码如下:
package main
import (
 "fmt"
 "runtime"
)
func main() {
 fmt.print("go runs on ")
 switch os := runtime.goos; os {
 case "darwin":
  fmt.println("os x.")
 case "linux":
  fmt.println("linux.")
 default:
  // freebsd, openbsd,
  // plan9, windows...
  fmt.printf("%s.", os)
 }
}

switch 的条件从上到下的执行,当匹配成功的时候停止。

(例如,

switch i {
case 0:
case f():
}
当 i==0 时不会调用 f。)

复制代码 代码如下:
package main
import (
 "fmt"
 "time"
)
func main() {
 fmt.println("when's saturday?")
 today := time.now().weekday()
 switch time.saturday {
 case today+0:
  fmt.println("today.")
 case today+1:
  fmt.println("tomorrow.")
 case today+2:
  fmt.println("in two days.")
 default:
  fmt.println("too far away.")
 }
}

没有条件的 switch 同 switch true 一样。

这一构造使得可以用更清晰的形式来编写长的 if-then-else 链。

复制代码 代码如下:
package main
import (
 "fmt"
 "time"
)
func main() {
 t := time.now()
 switch {
 case t.hour() < 12:
     fmt.println("good morning!")
 case t.hour() < 17:
     fmt.println("good afternoon.")
 default:
     fmt.println("good evening.")
 }
}

希望本文所述对大家的go语言程序设计有所帮助。