亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年05月21日 10:07:46   作者:sunjinshuai  
這篇文章主要給大家介紹了Swift中元組(tuples)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。

元組

元組(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一樣寫(xiě)出它的結(jié)構(gòu)和內(nèi)部屬性,也不需要像創(chuàng)建class一樣要寫(xiě)初始化方法。你只需要把你想用的、任何類型的值放在圓括號(hào)內(nèi),用逗號(hào)隔開(kāi)即可。如果你愿意你還可以給每個(gè)元素命名,提高元組使用效率。

從元組中讀元素

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

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

如果你覺(jué)得上述這種方法會(huì)造成語(yǔ)義的不明確,那么我們還可以將元組賦值給一個(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)給元組中的元素命名了名稱,那么我們可以這樣寫(xiě):

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ù)的返回值就是我們之前定義過(guò)的secondHighScore元組:

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

為什么說(shuō)上述函數(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è)沒(méi)有返回值的函數(shù)時(shí),其實(shí)該函數(shù)是返回一個(gè)空的元組()。

元組的訪問(wèn)級(jí)別

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

元組是值類型

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

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

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

總結(jié)

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

相關(guān)文章

  • Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼實(shí)現(xiàn)代碼

    Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了Swift3.0剪切板代碼拷貝及跨應(yīng)用粘貼的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Swift利用AFN實(shí)現(xiàn)封裝網(wǎng)絡(luò)請(qǐng)求詳解

    Swift利用AFN實(shí)現(xiàn)封裝網(wǎng)絡(luò)請(qǐng)求詳解

    網(wǎng)絡(luò)請(qǐng)求工具是我們經(jīng)常用到的工具類,所以下面這篇文章主要給大家介紹了關(guān)于Swift利用AFN如何實(shí)現(xiàn)封裝網(wǎng)絡(luò)請(qǐng)求的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Swift中初始化init的方法小結(jié)

    Swift中初始化init的方法小結(jié)

    Swift有著超級(jí)嚴(yán)格的初始化方法,不僅強(qiáng)化了designated初始化方法的地位,所有不加修飾的init方法都需要在方法中確保非Optional的實(shí)例變量被賦值初始化,下面這篇文章主要給大家介紹了關(guān)于Swift中初始化init的相關(guān)資料,需要的朋友可以參考下。
    2018-04-04
  • 本地推送通知UserNotifications在Swift中的實(shí)現(xiàn)方式

    本地推送通知UserNotifications在Swift中的實(shí)現(xiàn)方式

    這篇文章主要介紹了本地推送通知UserNotifications在Swift中的實(shí)現(xiàn)方式,想了解消息推送的同學(xué),一定要看一下
    2021-04-04
  • Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解

    Swift中defer關(guān)鍵字推遲執(zhí)行示例詳解

    這篇文章主要給大家介紹了關(guān)于Swift中defer關(guān)鍵字推遲執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Swift實(shí)現(xiàn)表格視圖單元格多選

    Swift實(shí)現(xiàn)表格視圖單元格多選

    這篇文章主要為大家詳細(xì)介紹了Swift實(shí)現(xiàn)表格視圖單元格多選,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift中的常量和變量簡(jiǎn)單概述

    Swift中的常量和變量簡(jiǎn)單概述

    這篇文章主要介紹了Swift中的常量和變量簡(jiǎn)單概述的相關(guān)資料,非常具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • 淺析Swift中struct與class的區(qū)別(匯編角度底層分析)

    淺析Swift中struct與class的區(qū)別(匯編角度底層分析)

    這篇文章主要介紹了Swift中struct與class的區(qū)別 ,本文從匯編角度分析struct與class的區(qū)別,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Swift中優(yōu)雅處理閉包導(dǎo)致的循環(huán)引用詳解

    Swift中優(yōu)雅處理閉包導(dǎo)致的循環(huán)引用詳解

    這篇文章主要給大家介紹了關(guān)于Swift中優(yōu)雅的處理閉包導(dǎo)致的循環(huán)引用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Swift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Swift?enum枚舉類型使用詳解

    Swift?enum枚舉類型使用詳解

    這篇文章主要為大家介紹了Swift?enum枚舉類型的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11

最新評(píng)論