在swift里面有这么个好玩的东西 - 元组(tuples).
它可以包含不同的数据类型组成一个复合值,同时也可以像json对象或者dictionary一样,指定键值。同时也可以像属性一样获取键值。
见识一下:
let http404Error = (404, "Not Found") let http200Status = (statusCode:200,description:"OK")
2种初始方式,可以直接将值组合,也可以按键值对组合。
如果是值组成的复合值获取时,可以:
let http404Error = (404, "Not Found") let (statusCode,statusMessage) = http404Error println("Code: (statusCode) Message: (statusMessage)")
也可以:
let http404Error = (404, "Not Found") println("Code: (http404Error.0) Message: (http404Error.1)")
如果是按键值对组成的复合值,就可以按属性的形式访问来获取相关值:
let http200Status = (statusCode:200,description:"OK") println("Code: (http200Status.statusCode) Message: (http200Status.description)")
总结:
1)元组在某些时候非常有用,但它毕竟是个临时复合值。按官方:
作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个(Int, String)
元组来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。
元组在临时组织值的时候很有用,但是并不适合创建复杂的数据结构。如果你的数据结构并不是临时使用,请使用类或者结构体而不是元组。
2)元组在初始化时,使用的是(),而非其它的<>(Dictionary的类型声明需要使用<>)或者[](数组Array或者Dictionary构造时需要使用[])
3)元组是可以直接保存多种数据类型的数据,并组成一个复合值的。这个是最显著的一个特征,也是非常有帮助的。