麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Swift語言指南(八)--語言基礎(chǔ)之元組

2019-11-14 20:24:29
字體:
供稿:網(wǎng)友

 

元組

元組(Tuples)將多個(gè)值組合為一個(gè)復(fù)合值。元組內(nèi)的值可以是任何類型,各個(gè)元素不需要為相同類型(各個(gè)元素之間類型獨(dú)立,互不干擾--Joe.Huang)。

下例中,(404, "Not Found") 是一個(gè)描述HTTP狀態(tài)碼的元組。HTTP狀態(tài)碼是當(dāng)你向WEB服務(wù)器請(qǐng)求頁(yè)面時(shí)服務(wù)器返回的一個(gè)特殊值,如果你(WEB服務(wù)器)請(qǐng)求了一個(gè)不存在的網(wǎng)頁(yè),返回的狀態(tài)碼就是 404 Not Found :

1 let http404Error = (404, "Not Found")2 // http404Error is of type (Int, String), and equals (404, "Not Found")3 // http404錯(cuò)誤的類型為(整型,字符串類型),它的值是(404,"Not Found")

(404, "Not Found") 元組將一個(gè) Int 值與一個(gè) String 值組合起來,表示 HTTP 狀態(tài)碼的兩個(gè)值:一個(gè)數(shù)字和一個(gè)人們可讀取的(文字性)描述。它可以這樣理解:“一個(gè)類型為 (Int, String) 的元組”。

你可以將類型任意排列來創(chuàng)建元組,也可以隨心所欲地讓元組包含多種不同類型。只要你愿意,創(chuàng)建類型為 (Int, Int, Int)(String, Bool) 的元組也不會(huì)有問題,當(dāng)然,根據(jù)你的需要,其它排列方式也是可以的。

元組的內(nèi)容可以分解(decompose)還原并賦值給單獨(dú)的常量或變量,然后便可照常訪問:

1 let (statusCode, statusMessage) = http404Error2 PRintln("The status code is /(statusCode)")3 // prints "The status code is 404" //輸出“狀態(tài)碼為 404”4 println("The status message is /(statusMessage)")5 // prints "The status message is Not Found //輸出"狀態(tài)信息 Not Found"

如果你只需要元組的某一部分值,可以在分解元組時(shí)用下劃線(_)標(biāo)識(shí)來忽略掉其他部分:

1 let (justTheStatusCode, _) = http404Error2 println("The status code is /(justTheStatusCode)")3 // prints "The status code is 404 //輸出“狀態(tài)碼為 404”

或者,通過以 0 開頭的元組索引訪問元組的各個(gè)元素值:

1 println("The status code is /(http404Error.0)")2 // prints "The status code is 404" //輸出“狀態(tài)碼為 404”3 println("The status message is /(http404Error.1)")4 // prints "The status message is Not Found //輸出“狀態(tài)碼為 Not Found”
5 //這種方式類似于數(shù)組通過下標(biāo)索引訪問數(shù)組各個(gè)元素的值--Joe.Huang

還可以在定義元組時(shí)為元組的各個(gè)元素單獨(dú)命名:

1 let http200Status = (statusCode: 200, description: "OK")

為元組各元素命名后,便可以通過元素名稱來訪問各個(gè)元素的值了:

1 println("The status code is /(http200Status.statusCode)")2 // prints "The status code is 200" //輸出“狀態(tài)碼為 404”3 println("The status message is /(http200Status.description)")4 // prints "The status message is OK //輸出“狀態(tài)信息 OK”

元組在作為函數(shù)返回值時(shí)非常有用。一個(gè)獲取網(wǎng)頁(yè)內(nèi)容的函數(shù)可能會(huì)通過返回一個(gè) (Int, String) 的元組類型來描述網(wǎng)頁(yè)載入是成功還是失敗。函數(shù)會(huì)返回兩個(gè)類型完全不同的值來描述返回的狀態(tài)或結(jié)果,(這種返回方式)所能提供的信息比只能返回固定類型的單個(gè)值要有用得多。詳情請(qǐng)參見 多個(gè)返回值的函數(shù)(后面章節(jié)會(huì)譯到)。

注:

元組對(duì)于多個(gè)關(guān)聯(lián)值的臨時(shí)組合是很有用的。但它們并不適用于創(chuàng)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如果你的數(shù)據(jù)結(jié)構(gòu)的生命周期超過臨時(shí)使用的范疇(不是臨時(shí)使用的值,就應(yīng)該通過類或建模緩存起來--Joe.Huang),請(qǐng)將它作為類或結(jié)構(gòu)建模,而不是以元組存儲(chǔ)。詳情請(qǐng)見 類與結(jié)構(gòu)(后面章節(jié)會(huì)譯到)

 

謝謝,Swifter-QQ群:362232993,同好者進(jìn)~ 

Fork:https://github.com/Joejo/Swift-lesson-for-chinese

 

 

 

 

 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美精品毛片 | 一级大片久久 | 免费a级黄色片 | 国产日韩久久久久69影院 | 毛片免费在线 | 日韩av日韩 | 色播视频在线播放 | 黄网站在线观 | 久久久久亚洲美女啪啪 | 日韩在线播放第一页 | 久久艹一区 | 黄色二区三区 | 中文字幕视频在线播放 | 精品一区二区免费 | 久久久久女人精品毛片九一 | 国产一区二区三区黄 | 91网视频| 激情小说激情电影 | 日本欧美一区二区三区在线观看 | 亚洲一区二区三区日本久久九 | 成人免费自拍视频 | 午夜视 | 久久影院一区二区三区 | 成人毛片100部 | 精品国产一区二区三区四区阿崩 | 91网址在线观看 | 久久精品一区二区三区国产主播 | 久综合 | 亚洲午夜国产 | 精品一区二区三区在线观看国产 | 国产一区视频免费观看 | 中文字幕在线观看视频www | 污在线观看网站 | 特色一级黄色片 | 久久大陆 | 久草在线综合 | 日日摸夜夜添夜夜添牛牛 | 高清视频91 | 日本在线不卡一区二区 | 久久福利国产 | 嗯~啊~用力~高h |