久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Swift學(xué)習(xí)筆記之元組(tuples)

這篇文章主要給大家介紹了Swift中元組(tuples)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。

元組

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

在Swift中創(chuàng)建元組的方式很簡(jiǎn)單,元組類型是用括號(hào)包圍,由一個(gè)逗號(hào)分隔的零個(gè)或多個(gè)類型的列表。例如:


let firstHighScore = ("Mary", 9001)

另外,在創(chuàng)建元組時(shí)你還可以給元組中的元素命名:


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

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

從元組中讀元素

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


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

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


let (firstName, firstScore) = firstHighScore
println(firstName) // Mary
println(firstScore) // 9001

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


let (_, firstScore) = firstHighScore
println(firstScore) // 9001

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


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

將元組作為函數(shù)返回值

當(dāng)你想讓一個(gè)函數(shù)能夠返回多種類型時(shí),這是元組的最佳使用場(chǎng)景。

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


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

為什么說上述函數(shù)的返回值是secondHighScore元組呢?因?yàn)間etAHighScore函數(shù)返回的元組元素個(gè)數(shù)、元素名稱、元素類型均和secondHighScore相同。

其實(shí)將元組作為函數(shù)的返回值時(shí)也可以不必對(duì)元素進(jìn)行命名,只要你明白每個(gè)元素代表的含義即可:


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

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


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

因?yàn)槭强蛇x的元組類型,所以當(dāng)返回的元組不為nil時(shí),你需要對(duì)元組進(jìn)行解包:


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

注意:當(dāng)你定義了一個(gè)沒有返回值的函數(shù)時(shí),其實(shí)該函數(shù)是返回一個(gè)空的元組()。

元組的訪問級(jí)別

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

元組是值類型

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


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

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)html5模板網(wǎng)的支持。

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)教程之類型對(duì)象Subject的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著
這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)教程之Observable的相關(guān)資料,文中詳細(xì)的給大家介紹了關(guān)于新建Observable、訂閱Observable和取消訂閱并消除內(nèi)存泄漏等相關(guān)的內(nèi)容,需要的朋友可以
RxSwift是Swift函數(shù)響應(yīng)式編程的一個(gè)開源庫,由Github的ReactiveX組織開發(fā),維護(hù)。下面這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)之基礎(chǔ)篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需
這篇文章主要為大家詳細(xì)介紹了Swift4.0 Array數(shù)組的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
CATransition動(dòng)畫主要在過渡時(shí)使用,比如兩個(gè)頁面層級(jí)改變的時(shí)候添加一個(gè)轉(zhuǎn)場(chǎng)效果。CATransition分為兩類,一類是公開的動(dòng)畫效果,一類是非公開的動(dòng)畫效果。這篇文章主要給大家介紹了
近日,iPhone X的發(fā)布在人們?nèi)罕娨鹆撕艽蟮霓Z動(dòng),下面這篇文章主要給大家介紹了關(guān)于利用Swift如何判斷iPhone X機(jī)型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面
主站蜘蛛池模板: 精品久久久久一区二区国产 | 91一区二区三区 | 这里精品| 久久久激情视频 | 日韩一二区在线 | 乱一性一乱一交一视频a∨ 色爱av | 国产成人免费网站 | 亚洲欧美国产毛片在线 | 羞羞在线视频 | 日本免费在线 | 中文字幕在线中文 | 亚洲精品二区 | 在线观看中文字幕视频 | 久草福利| 性色网站| 国产乱人伦精品一区二区 | 一级做a爰片性色毛片视频停止 | 国产精品视频免费 | 亚洲精选久久 | 欧美高清性xxxxhdvideosex | 亚洲欧美日韩一区二区 | 欧美日韩精品一区二区 | 天天干天天草 | www..com18午夜观看 | 久久青 | 日韩精品一区二区三区视频播放 | 国产精品av久久久久久久久久 | 成人精品免费视频 | 中文亚洲字幕 | 精品国产不卡一区二区三区 | 日韩欧美国产精品 | 韩国精品在线观看 | 91精品久久久久久久久久入口 | 精品日韩 | 久久在线视频 | 99精品视频一区二区三区 | 亚洲二区在线 | 日韩在线中文字幕 | 国产成人综合一区二区三区 | 国产精品视频播放 | 在线视频一区二区三区 |