Swift中的模式分为两类:
- 一种能成功匹配任何类型的值,另一种在运行时匹配某个特定值时可能会失败。
- 第一类模式用于解构简单变量、常量和可选绑定值。此类模式包括通配符、标识符模式,以及包含前两种模式的值绑定模式和元组模式。你可以为这类模式制定一个类型标注,从而限制它们只能匹配某种特定类型的值。
- 第二种模式用于全模式匹配,这种情况下你试图匹配的值在运行时可能不存在此类模式包括枚举用例模式、可选模式、表达式模式和类型转换模式。你在switch语句的case标签中,do语句的catch子句中,或者在if、while、guard和for-in语句的case条件语句中使用这类模式。
模式细分类:
- 通配符模式 (Wildcard Pattern)
- 标识符模式 (Identifier Pattern)
- 值绑定模式 (Value-Binding Pattern)
- 元组模式 (Tuple Pattern)
- 枚举用例模式 (Enumeration Case Pattern)
- 可选项模式 (Optional Pattern)
- 类型转换模式 (Type-Casing Pattern)
- 表达式模式 (Expression Pattern)
元组模式
可选项模式
下图右边例子中声明一个数组,为Int的可选类型,用for case let number? in来找到数字项。
类型转换模式
多用于继承与多态。
as有返回值,赋值给dog,
is没有返回值,只是作为判断。
表达式模式
只出现在switch语句中的case标签中。可以重载~=符号来改变匹配条件。