一般来说程序分支用if...else或者switch来表示。
作为一门个性十足的语言,Golang的switch也很个性!一起来看看:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Print("Go runs on ")
switch myos := runtime.GOOS; myos {
case "windows":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
fmt.Printf("%s.", myos)
}
}
看到了吧,赋值、判断,跟if的处理如出一辙。case体会自动终止,不用break。输出是当前操作系统类型。
如果没有判断条件,switch默认为true。
package main
import "fmt"
func main() {
var age int
fmt.Println("Guess how old I'm?")
fmt.Scanf("%d", &age)
switch {
case age > 28:
fmt.Println("Am I that old?")
case age < 28:
fmt.Println("You're so sweet, but not correct。。。")
default:
fmt.Printf("How smart you are!")
}
}
当然,外面套个循环更好...循环会在后面讲到。太极,不要太急...
题外话:
Golang的大括号位置也是不能随意调整的,试试左半大括号不跟在上一行?呵呵~