在一次工作中使用 switch 才发现和其他的语言的 switch 有些不一样,避免再次踩坑,在这里总结一下。
示例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| // 获取考试成绩 func GetGrade(score string) (grade string) { switch score { case "A": fmt.Println("优秀") case "B": fmt.Println("良好") break case "C": fmt.Println("及格") case "D": fmt.Println("不及格") default: fmt.Println("没考试") } return grade }
|
调用例子
1 2
| GetGrade("A") // 输出 “优秀” GetGrade("B") // 输出 “良好”
|
结论:和其他语言的 break 不一样,go 里面只要 case 是 true,会在末尾自动加 break, 不会走其他的 case , 所以,break 的意义不是很大。
如果想要走下面的 case 怎么办?