switch多路选择说明:
switch coinflip() {
    case "heads":
        heads++
    case "tails":
        tails++
    default:
    fmt.Println("landed on edge!")
}
Go语言并不需要显式地在每一个case后写break,语言默认执行完case后的逻辑语句会自动退出。如果你想要相邻的case都执行同一逻辑的话,需要自己显式地写上一个fallthrough语句来覆盖这种默认行为.

Go语言里的switch还可以不带操作对象(译注:switch不带操作对象时默认用true值代替,然后将每个case的表达s式和true值进行比较);可以直接罗列多种条件,像其它语言里面的多个if else一样,这种形式叫做无tag switch(tagless switch);这和switch true是等价的
func Signum(x int) int {
    switch {
        case x > 0:
            return +1
        default:
            return 0
        case x < 0:
            return -1
    }
}