溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

12.swift 元祖

發(fā)布時(shí)間:2020-02-25 17:25:26 來(lái)源:網(wǎng)絡(luò) 閱讀:477 作者:光光ing 欄目:移動(dòng)開發(fā)

/*

元祖:

在其它語(yǔ)言中很早就是有元祖這個(gè)概念, 但是對(duì)于OC程序員來(lái)說這是一個(gè)新的概念

將多個(gè)相同或者不同類型的值用一個(gè)小括號(hào)括起來(lái)就是一個(gè)元祖

*/

let student = ("lnj", 30, 99.8)

print(student)

print(student.0)

print(student.1)

print(student.2)


/*

元祖其實(shí)和結(jié)構(gòu)體很想, 只是不需要提前定義類型. 那么如果不定義類型元祖是什么類型呢?

元祖其實(shí)是復(fù)合類型, 小括號(hào)中可以寫任意類型

*/


let student1: (String, Int, Double) = ("lnj", 30, 99.8)

/*

元祖的其它定義方式:指明應(yīng)用元祖元素的名稱

*/

let student2 = (name:"lnj",age:30,score:99.8)

print(student2.name)

print(student2.age)

print(student2.score)


/*

元祖的其它定義方式

通過指定的名稱提取元祖對(duì)應(yīng)的值, 會(huì)將對(duì)應(yīng)位置的值 賦值給對(duì)應(yīng)位置的名稱

*/

let (name , age , score) =  ("lnj", 30, 99.8)

print(name)

print(age)

print(score)


/*

如果不關(guān)心元祖中的某個(gè)值可以利用_通配符來(lái)忽略提取

*/

let (name1 , age1 , _) =  ("lnj", 30, 99.8)

print(name1)

print(age1)


/*

在以前沒有元祖之前COC語(yǔ)言是通過傳入指針或者返回結(jié)構(gòu)體的方式來(lái)返回多個(gè)值的,而有了元祖之后就可以實(shí)現(xiàn)讓一個(gè)函數(shù)返回多個(gè)值

*/


// 元祖的使用 


let userArray = ["why", 18, 1,88]

userArray[0]

let userDict = ["name" : "why", "age" : 18, "height" : 1.88]

userDict["name"]


// 元組的基本寫法

let userInfo = ("why", 18, 1.88)

userInfo.0

userInfo.1

userInfo.2


// 給每一個(gè)元素起別名

let userInfo1 = (name : "why", age : 18, height : 1.88)

userInfo1.name

userInfo1.age

userInfo1.height



// 別名就是變量的名稱

let (name, age, height) = ("why", 18, 1.88)

name

age

height


// ------------------使用元祖------------------------

// 元祖也是一個(gè)數(shù)據(jù)集合,可以在集合中定義一組數(shù)據(jù)

// 元祖的定義使用:(元素1,元素2)

("1001", "張三", 19, 1.88)

(id : "1001", name : "張三", age : 19, height : 1.88)


// 用一個(gè)數(shù)據(jù)類型來(lái)描述網(wǎng)絡(luò)請(qǐng)求錯(cuò)誤

// errorCode/errorInfo

[404, "Not Found"]

["errorCode" : 404, "errorInfo" : "Not Found"]


// 用元祖描述錯(cuò)誤信息

let error = (404, "Not Found")

error.0

error.1


let error1 = (errorCode : 404, errorInfo : "Not Found")

error1.errorCode

error1.errorInfo


switch (error1) {

case (404, "Not Found"):

    print("沒有找到主機(jī)")

default :

    print("其他錯(cuò)誤")

}


let (errorCode2, errorInfo2) = (404, "Not Found")

errorCode2

errorInfo2


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI