在一次工作中使用 switch 才发现和其他的语言的 switch 有些不一样,避免再次踩坑,在这里总结一下。
示例代码
| 12
 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
 }
 
 | 
调用例子
| 12
 
 | GetGrade("A") // 输出 “优秀”GetGrade("B") // 输出 “良好”
 
 | 
结论:和其他语言的 break 不一样,go 里面只要 case 是 true,会在末尾自动加 break, 不会走其他的 case , 所以,break 的意义不是很大。
如果想要走下面的 case 怎么办?