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

2018-10-15 17:34

阅读:611

本文实例讲述了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(Whens 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语言程序设计有所帮助。


评论


亲,登录后才可以留言!