Swift学习23:更加强大的switch
swift
switch
语句会将一个值与多个可能匹配的模式匹配,然后基于第一个成功匹配的模式来执行合适的代码块switch
语句一定得是全面的。给定类型里的每一个值都得匹配到一个switch
的case
。你可以定义一个默认匹配的case
来匹配所有未明确的值,用关键字default
标记OC
中switch
语句不全面,仍然可以运行
1 | let c:Character = "z" |
修改
1 | let c:Character = "z" |
没有隐私贯穿
相比
OC
和C
,Swift
里的Switch
不会默认从匹配的case
末尾贯穿到下一个 case
里相反,整个
Switch
在匹配到第一个case
执行完毕之后退出,不再需要显示break
每一个
case
的函数体必须包含至少一个可执行的语句在一个
Switch
的case
中匹配多个值可以用逗号分割
,并且可以写成多行
1 | let c = "a" |
区间匹配
Switch
的case
的值可以再一个区间中匹配
1 | let count = 43 |
元组匹配
你可以使用元组来在一个
switch
中测试有多个值使用下划线
_
来表明匹配所有可能的值
1 | let point = (1,1) |
值绑定
switch
的case
可以将匹配到的值临时绑定
到一个常量或变量
,来给case
的函数体使用如果使用
var
关键字,临时的变量就会以合适的值来创建并初始化。对这个变量的任何改变都只会在case
的函数体内有效
1 | let point = (1,0) |
where 语句
switch case
可以使用where
语句来检查是否符合特定的约束
1 | let point = (1,-1) |
复合匹配
case
后可以写多个模式来复合,在每个模式间用,
号分割
复合匹配 - 值绑定
- 复合匹配同样可以包含
值绑定
。
- Post title:Swift学习23:更加强大的switch
- Post author:张建
- Create time:2023-02-23 21:35:07
- Post link:https://redefine.ohevan.com/2023/02/23/Swift课程/Swift学习23:更加强大的switch/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.