有了cityCode和provinceName后,把这两块信息拼接起来就很有用了。尽管两者逻辑相关,但是目前是存储在两个独立变量中的。元组(tuple)可以用来组合这两个变量,元组是具有逻辑关联的两个或多个值的有限组合。不同的值被组合为单个复合值。组合的结果是一个元素的有序列表。创建一个元组来组合cityCode和provinceName,示例如下:
动手写4.2.6 CityCodeTuple
控制台输出如下:
将cityCode和provinceName放进一对圆括号里就可以创建元组,结果赋值给result常量。元组的元素可以用索引读取。读者可能已经注意到在运行结果侧边栏中显示的元组的值带着“.0”和“.1”,这就是元素的索引,如图4.2.1所示:
图4.2.1 元组的元素索引(www.xing528.com)
接着读者就可以使用 result.0(元组的第一个元素)和result.1(元组的第二个元素)去读取元组中的元素了,打印出来分别是“10000” 和“非法区号10000”。
Swift的元组也可以使用命名过的元素。元组的命名元素能使代码更可读。要理解result.0和result.1代表什么值有些困难,而利用命名元素就能更容易地读懂了,如result.cityCode和result.provinceName。我们可以替换之前示例中赋值常量的语句为:
现在可以通过与元素关联的名称读取元组元素了:cityCode的名字是cityCode,provinceName的名字是provinceName。运行结果侧边栏会显示跟刚才一样的信息,如图4.2.2所示:
图4.2.2 元组的元素名称
在switch语句的分支中使用区间其实就是模式匹配的一个例子。这种形式的模式匹配被称为区间匹配,因为每个分支都尝试匹配一个区间和给定值,元组在模式匹配中也很有用。
举个例子,如果同时存在多个应用在查询区号对应的省和直辖市,每次查询完都可以保存区号和省直辖市的名字。之后想追溯是什么区号还没有映射到相应的城市,就可以从元组中的provinceName看到,也可以直接查看对应的区号值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。