元組(tuples)把多個值組合成一個復(fù)合值挑社。元組內(nèi)的值可以是任意類型,并不要求是相同類型巡揍。以我自己的理解痛阻,swift中新增的數(shù)據(jù)集合元組,綜合了OC中的數(shù)組(NSAarray),模型(model)腮敌,字典(NSDictionary)等功能阱当,也可以說是加強版的數(shù)組(NSArray)俏扩。下面就來了解一下元祖的功能。
元組的定義如下:
let http404error = (404,"Not Found")
(404, "Not Found")元組把一個Int值和一個String值組合起來表示 HTTP 狀態(tài)碼的兩個部分:一個數(shù)字和一個人類可讀的描述弊添。這個元組可以被描述為“一個類型為(Int, String)的元組”录淡。
你可以把任意順序的類型組合成一個元組,這個元組可以包含所有類型油坝。只要你想嫉戚,你可以創(chuàng)建一個類型為(Int, Int, Int)或者(String, Bool)或者其他任何你想要的組合的元組。
你可以將一個元組的內(nèi)容分解(decompose)成單獨的常量和變量澈圈,然后你就可以正常使用它們了:
let(statusCode, statusMessage) = http404Error
print("The status code is\(statusCode)")
// 輸出 "The status code is 404"
print("The status message is\(statusMessage)")
// 輸出 "The status message is Not Found"
如果你只需要一部分元組值彬檀,分解的時候可以把要忽略的部分用下劃線(_)標(biāo)記:
let(justTheStatusCode,_) = http404Error
print("The status code is\(justTheStatusCode)")// 輸出 "The status code is 404"
此外,你還可以通過下標(biāo)來訪問元組中的單個元素瞬女,下標(biāo)從零開始:(此處功能與數(shù)組類似)
print("The status code is\(http404Error.0)")// 輸出 "The status code is 404"print("The status message is\(http404Error.1)")// 輸出 "The status message is Not Found"
你可以在定義元組的時候給單個元素命名:
lethttp200Status = (statusCode:200, description:"OK")
給元組中的元素命名后窍帝,你可以通過名字來獲取這些元素的值:
print("The status code is\(http200Status.statusCode)")// 輸出 "The status code is 200"print("The status message is\(http200Status.description)")// 輸出 "The status message is OK"
注意:
元組在臨時組織值的時候很有用,但是并不適合創(chuàng)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu)诽偷。如果你的數(shù)據(jù)結(jié)構(gòu)并不是臨時使用坤学,請使用類或者結(jié)構(gòu)體而不是元組。請參考類和結(jié)構(gòu)體报慕。