简介
元组(tuples)可以把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。
实例:
(404,"Not Found")
是一个描述http状态码的元组。http状态码是当请求网页的时候web服务器返回的特殊值。如果你请求的网页不存在就会返回一个404 Not Found状态码。
let http404Error = (404,"Not Found")
(404,"Not Found")
元组把一个int
值和一个string
值组合起来表示http状态吗的两个部分:这个元组可以被描述为“一个类型为(int,string)的元组”。
可以将一个元组的内容分解成单独的常量和变量,然后你就可以正常使用它们了:
let (statusCode,statusMessage) = http404Error
print("\(statusCode)")
print("\(statusMessage)")
var a = (1,"2",["a"])
print(a.0 , a.1 , a.2)
如果只需要一部分元组值,分解的时候可以把要忽略的部分用下划线(_)
标记:
let (justTheStatusCode,_) = http404Error
此外,还可以通过下标来访问元组中的单个元素,下标从零开始:
print("\(http404Error.0)")
print("\(http404Error.1)")
可以在定义元组的时候给单个元素命名:
let http200Status = (statusCode:200,description:"ok")
给元组中的元素命名后,可以通过名字来获取这些元素的值:
print("\(http200Status.statusCode)")
print("\(http200Status.description)")
作为函数返回值时,元组非常有用。一个用来获取网页的函数可能会返回一个(int,string)元组来描述是否获取成功。和只能返回一个类型的值比较起来,一个包含两个不同类型值的元组可以让函数的返回信息更有用。
可选元组
- 通过在元组类型的右括号后放置一个问号来定义一个可选元组,例如(Int, Int)?或(String, Int, Bool)?
- 可选元组类型如(Int, Int)?与元组包含可选类型如(Int?, Int?)是不同的.可选的元组类型,整个元组是可选的,而不只是元组中的每个元素值。
注意
可选元组类型如(Int, Int)?与元组包含可选类型如(Int?, Int?)是不同的.可选的元组类型,整个元组是可选的,而不只是元组中的每个元素值