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
}
}