Go语言中的switch用法实例分析
2015-02-26 10:22
1316 查看
这里你可能已经猜到 switch 可能的形式了。
case 体会自动终止,除非用 fallthrough 语句作为结尾。
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。)
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 链。
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语言程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Go语言中slice的用法实例分析
- GO语言Defer用法实例分析
- go语言接口用法实例分析
- Go语言map用法实例分析
- Go语言map字典用法实例分析
- Go语言中的range用法实例分析
- Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】
- Go语言共享内存读写实例分析
- GO语言映射(Map)用法分析
- Go语言中常量定义方法实例分析
- Go语言多值替换的HTML模板实例分析
- Go语言接口用法实例
- Go语言中Select语句用法实例
- GO语言类型转换和类型断言实例分析
- Go语言中关闭带缓冲区的频道实例分析
- Go语言的管道Channel用法实例
- go语言template用法实例
- GO语言延迟函数defer用法分析
- Go语言中的匿名结构体用法实例
- Go语言里的结构体文法实例分析