switch 流程控制 第七本【第五章】116~124页
1、switch后面跟0或1个表达式(变量、常量、有返回值的函数,总之最终得是一个值);
case后跟1或多个表达式(变量、常量、有返回值的函数,总之最终得是一个值),如果
是多个表达式要用逗号隔开,如果是多个常量,则需是不重复的多个常量
2、将switch后面的表达式的返回值、值的数据类型 按case的排列顺序逐一地和case后面表达式的返回值和值的数据类型进行比较,
值和类型相等的就执行相应的case冒号后的内容【否则执行default冒号后面的内容(如果有default,default是非必须的)】,
并退出switch;因此要合理安排各个case的顺序,提高代码效率
3、case冒号后面的内容结束后,无需加break,如果加了,仍表示跳出switch;因此如果switch嵌套在for循环
中,想在switch里跳出for循环,switch里的break需配合使用针对for循环的label
4、如果在某个case语句块后另起一行增加fallthrough,则会在执行完当前case后,在不判断下
一个case的情况下,执行下一个case冒号后的内容,然后结束退出switch。
【即一个fallthrough只穿透一层】
5、TypeSwitch断言也用到switch
3、switch的几种示例,详见switch.go中