- Switch 语句
- switch语句会将一个值与多个可能的模式匹配。然后基于第一个成功匹配的模式来执行合适的代码块。
- switch语句一定得是全面的。就是说,给定类型里每一个值都的被考虑到并且匹配到一个switch的case。如果无法提供一个switch case所有可能的值,你可以定一个默认匹配所有的case来匹配所有未明确出来的值。这个匹配所有的情况用关键字default标记,并且必须在所有case的最后面出现。
- Object-C switch 语句如果不全面,仍然可以运行。
- 没有隐式贯穿
- 相比C和 Object -C里的switch语句来说。switch里的switch语句不会默认从匹配case的末尾贯穿到下一个case里。
- 相反,整个switch 语句会在匹配到第一个switch的case执行完毕之后推出,不再需要显示的break语句。
- 每一个case的函数体必须包含至少一个可执行语句。
- 在一个switch的case中匹配多个值可以用逗号分隔,并且可以写成多行。
- switch的case的值可以子啊一个区间中匹配。
- 可以使用元组来在一个switch语句中测试多个值。
- 使用下划线(_)来表明匹配所有可能的值。
- 值绑定
- switch的case可以将匹配到的值临时绑定为一个常量或变量,来给case的函数体使用。
- 如果使用var 关键字,临时变量就会以合适的值来创建并初始化。对着变量的任何改变都只会在case的函数体内有效。
- where字句
- Switch case可以使用where分句来检查是否符合特定的约束。
- 复合匹配