updated 17:18, 6/28/2015

This commit is contained in:
ray16897188
2015-06-28 17:19:15 +08:00
parent e49e55db00
commit 4a35d8c35b

View File

@ -16,7 +16,11 @@
模式pattern代表了单个值或者复合值的结构。例如元组`(1, 2)`的结构是逗号分隔的,包含两个元素的列表。因为模式代表一种值的结构,而不是特定的某个值,你可以把模式和各种同类型的值匹配起来。比如,`(x, y)`可以匹配元组`(1, 2)`,以及任何含两个元素的元组。除了将模式与一个值匹配外,你可以从合成值中提取出部分或全部,然后分别把各个部分和一个常量或变量绑定起来。 模式pattern代表了单个值或者复合值的结构。例如元组`(1, 2)`的结构是逗号分隔的,包含两个元素的列表。因为模式代表一种值的结构,而不是特定的某个值,你可以把模式和各种同类型的值匹配起来。比如,`(x, y)`可以匹配元组`(1, 2)`,以及任何含两个元素的元组。除了将模式与一个值匹配外,你可以从合成值中提取出部分或全部,然后分别把各个部分和一个常量或变量绑定起来。
swift中有2种模式的基本类型: swift中有2个基本的模式种类一类能成功和任何值的类型相匹配另一类在运行时runtime和某特定值匹配时可能会失败。
第一类模式用于析构简单变量常量和可选绑定中的值。此类模式包括通配符模式标识符模式以及任何包含了它们的值绑定模式或者元祖模式。你可以为这些模式指定一个类型注释type annotation来限制它们只能匹配某种特定类型的值。
第二类模式用于全模式匹配,这种情况下你用来相比较的值在运行时可能还不存在。此类模式包括枚举用例模式,可选模式,表达式模式和类型转换模式。你在`switch`语句的case标签中`do`语句的`catch`从句中,或者在`if, while, guard``for-in`语句的case条件句中使用这类模式。
在Swift中模式出现在变量和常量的声明在它们的左侧`for-in`语句和`switch`语句在它们的case标签中。尽管任何模式都可以出现在`switch`语句的case标签中但在其他情况下只有通配符模式wildcard pattern标识符模式identifier pattern和包含这两种模式的模式才能出现。 在Swift中模式出现在变量和常量的声明在它们的左侧`for-in`语句和`switch`语句在它们的case标签中。尽管任何模式都可以出现在`switch`语句的case标签中但在其他情况下只有通配符模式wildcard pattern标识符模式identifier pattern和包含这两种模式的模式才能出现。