亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

Swift學習筆記之元組(tuples)

2020-03-09 17:45:15
字體:
來源:轉載
供稿:網友

元組

元組(tuples)是由其它類型組合而成的類型。元組可能包含零或多個類型,比如 字符串、整數、字符、布爾以及其它元組。同時請注意,元組是值傳遞,而不是引用。

在Swift中創建元組的方式很簡單,元組類型是用括號包圍,由一個逗號分隔的零個或多個類型的列表。例如:

let firstHighScore = ("Mary", 9001)

另外,在創建元組時你還可以給元組中的元素命名:

let secondHighScore = (name: "James", score: 4096)

以上就是創建元組的兩種方式,非常簡單和簡潔。你不需要像創建struct一樣寫出它的結構和內部屬性,也不需要像創建class一樣要寫初始化方法。你只需要把你想用的、任何類型的值放在圓括號內,用逗號隔開即可。如果你愿意你還可以給每個元素命名,提高元組使用效率。

從元組中讀元素

如果我們沒有給元組的元素命名,我們可以用點語法,通過定義好的元組變量或常量獲取它的第1個到第n個元素:

let firstHighScore = ("Mary", 9001)println(firstHighScore.0) // Maryprintln(firstHighScore.1) // 9001

如果你覺得上述這種方法會造成語義的不明確,那么我們還可以將元組賦值給一個帶有元素名稱的元組(元素名稱個數要對應):

let (firstName, firstScore) = firstHighScoreprintln(firstName) // Maryprintln(firstScore) // 9001

如果你只需要一部分元組值,分解的時候可以把要忽略的部分用下劃線(_)標記:

let (_, firstScore) = firstHighScoreprintln(firstScore) // 9001

如果我們已經給元組中的元素命名了名稱,那么我們可以這樣寫:

let secondHighScore = (name: "James", score: 4096)println(secondHighScore.name) // Jamesprintln(secondHighScore.score) // 4096

將元組作為函數返回值

當你想讓一個函數能夠返回多種類型時,這是元組的最佳使用場景。

我們可以將元組作為函數的返回值,下面這個函數的返回值就是我們之前定義過的secondHighScore元組:

func getAHighScore() -> (name: String, score: Int) { let theName = "Patricia" let theScore = 3894 return (theName, theScore)}

為什么說上述函數的返回值是secondHighScore元組呢?因為getAHighScore函數返回的元組元素個數、元素名稱、元素類型均和secondHighScore相同。

其實將元組作為函數的返回值時也可以不必對元素進行命名,只要你明白每個元素代表的含義即可:

func getAHighScore() -> (String, Int) { let theName = "Patricia" let theScore = 3894 return (theName, theScore)}

如果你不確定返回的元組一定不為nil,那么你可以返回一個可選的元組類型:

func maybeGetHighScore() -> (String, Int)? { return nil}

因為是可選的元組類型,所以當返回的元組不為nil時,你需要對元組進行解包:

if let possibleScore = maybeGetHighScore() { possibleScore.0 possibleScore.1} else { println("Nothing Here")}

注意:當你定義了一個沒有返回值的函數時,其實該函數是返回一個空的元組()。

元組的訪問級別

元組的訪問級別取決于它包含的元素。比如元組里的元素都是private級別的,那么該元組也是private級別的。但這里有一個遵循最小的原則,也就是說如果一個元組中有兩個元素,一個為private級別,另一個為public級別,那么該元組遵循最小原則,它的訪問級別為private。

元組是值類型

關于值類型和引用類型的知識這里不再累贅,我們通過一個代碼示例來看看元組是哪種類型:

var someScore = ("John", 55)var anotherScore = someScoreanotherScore.0 = "Robert"println(anotherScore.0) //Outputs: "Robert"println(someScore.0)  //Outputs: "John"

通過上述的代碼示例可以看出,我把someScore元組賦值給了anotherScore,然后修改了anotherScore的第1個元素的值,最后分別打印了someScore和anotherScore第1個元素的值。someScore元組第一個元素的值為Robert,而anotherScore元組第一個元素的值仍然為John。由此可見元組是值類型。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线视频国产日韩| 国产成人精品网站| 欧美xxxx18性欧美| 亚洲综合社区网| 精品无码久久久久久国产| 性欧美激情精品| 欧美色视频日本高清在线观看| 欧美国产精品va在线观看| 亚洲成人激情图| 日本精品在线视频| 久久久亚洲国产| 亚洲欧美综合v| 亚洲区免费影片| 欧美成人在线免费视频| 中文字幕日韩在线视频| 国产精品久久久久久超碰| 国产69精品久久久| 亚洲色图av在线| 日韩成人黄色av| 成人av.网址在线网站| 91国在线精品国内播放| 亚洲精品久久久久久久久久久| 九色精品美女在线| 日本一本a高清免费不卡| 国产91ⅴ在线精品免费观看| 一本大道香蕉久在线播放29| 亚洲xxxx做受欧美| 久久精品国产一区二区电影| 欧美裸体视频网站| 在线a欧美视频| 九九视频这里只有精品| 亚洲视频国产视频| 亚洲成年人在线播放| 成人午夜一级二级三级| 亚洲网站在线播放| 亚洲午夜未满十八勿入免费观看全集| 欧美激情高清视频| 国产最新精品视频| 亚洲人成在线一二| 国产精品亚洲欧美导航| 国模视频一区二区| 成人在线一区二区| 国产va免费精品高清在线| 欧美成人午夜免费视在线看片| 在线播放日韩专区| 国产精品久久久久久久久久三级| 国产精品精品视频一区二区三区| 久久久久99精品久久久久| 欧美性xxxxx极品| 国产精品video| 欧美大片第1页| 日本成熟性欧美| 亚洲综合在线小说| 久久男人的天堂| 欧美www视频在线观看| 国产一区私人高清影院| 欧美电影在线观看完整版| 最近2019中文字幕一页二页| 国产成人精品久久| 日韩精品在线第一页| 欧美日韩国产一区二区| 欧美大片第1页| 久久久久久久一区二区三区| 永久555www成人免费| 91美女高潮出水| www.午夜精品| 日韩在线观看网址| 午夜精品一区二区三区在线视频| 在线电影av不卡网址| 国产精品久久久久久久app| 日韩av免费在线播放| 精品国偷自产在线| 成人免费视频xnxx.com| 日韩在线观看精品| 国产美女久久精品香蕉69| 国产69精品99久久久久久宅男| 欧美有码在线观看| 中文字幕一区二区精品| 九色精品免费永久在线| 亚洲丝袜av一区| 日韩av中文字幕在线| 久久久久在线观看| 国产精品主播视频| 国产精品成人久久久久| 免费91麻豆精品国产自产在线观看| 国内精品视频一区| 奇米4444一区二区三区| 亚洲性av网站| 欧美大片va欧美在线播放| 亚洲在线第一页| 综合网日日天干夜夜久久| 国产成人精品一区二区在线| 久久国内精品一国内精品| 欧美一级电影免费在线观看| 欧美精品免费看| 亚洲3p在线观看| 一区二区日韩精品| 欧美日韩亚洲精品一区二区三区| 欧美一性一乱一交一视频| 国产精品免费久久久久久| 亚洲一区中文字幕在线观看| 亚洲精品黄网在线观看| 伊人精品在线观看| 久久成年人免费电影| 成人免费视频xnxx.com| 91国产美女视频| 日韩成人av在线| 成人午夜高潮视频| 久久久久久久成人| 欧美亚洲国产日韩2020| 在线精品播放av| 久久精品国产亚洲精品| 国产欧美一区二区三区四区| 国产亚洲精品激情久久| 一区二区三区精品99久久| 上原亚衣av一区二区三区| 亚洲精选一区二区| 亚洲毛茸茸少妇高潮呻吟| 国产69久久精品成人看| 久久精品国产欧美激情| 日韩小视频在线| 九九精品视频在线| 国产成人91久久精品| 国产va免费精品高清在线| 欧美高清电影在线看| 日产精品99久久久久久| 亚洲r级在线观看| 国模gogo一区二区大胆私拍| 北条麻妃一区二区在线观看| 国产在线视频不卡| 亚洲精品小视频| 久久久久久中文| 日本精品一区二区三区在线播放视频| 国产精品免费网站| 欧美性猛交xxxx免费看| 久久久国产视频91| 国产精品国产三级国产aⅴ浪潮| 欧美激情2020午夜免费观看| 亚洲a在线播放| 国产91网红主播在线观看| 懂色av影视一区二区三区| 国产成人精品在线| 国产成人精品一区二区三区| 成人欧美一区二区三区在线湿哒哒| 91青草视频久久| 亚洲国产成人久久综合一区| 日本高清不卡的在线| 日韩一区二区久久久| 午夜精品一区二区三区在线播放| 亚洲国产精品99| 久热精品在线视频| 欧美亚州一区二区三区| 久色乳综合思思在线视频| 一区二区三区精品99久久| 欧美激情在线观看| 欧美性xxxx在线播放| 欧美性猛交xxxxx水多| 91精品国产综合久久久久久蜜臀| 欧美午夜激情视频| 欧美日韩亚洲视频| 国产在线视频一区| 日韩成人网免费视频| 中文字幕欧美视频在线| 91久久精品日日躁夜夜躁国产|