Go Switch语句

当条件判断分支太多的时候,我们会使用switch语句来优化逻辑。

  1. package main
  2. import "fmt"
  3. import "time"
  4. func main() {
  5. // 基础的switch用法
  6. i := 2
  7. fmt.Print("write ", i, " as ")
  8. switch i {
  9. case 1:
  10. fmt.Println("one")
  11. case 2:
  12. fmt.Println("two")
  13. case 3:
  14. fmt.Println("three")
  15. }
  16. // 你可以使用逗号来在case中分开多个条件。还可以使用default语句,
  17. // 当上面的case都没有满足的时候执行default所指定的逻辑块。
  18. switch time.Now().Weekday() {
  19. case time.Saturday, time.Sunday:
  20. fmt.Println("it's the weekend")
  21. default:
  22. fmt.Println("it's a weekday")
  23. }
  24. // 当switch没有跟表达式的时候,功能和if/else相同,这里我们
  25. // 还可以看到case后面的表达式不一定是常量。
  26. t := time.Now()
  27. switch {
  28. case t.Hour() < 12:
  29. fmt.Println("it's before noon")
  30. default:
  31. fmt.Println("it's after noon")
  32. }
  33. }

输出结果为

  1. write 2 as two
  2. it's a weekday
  3. it's before noon