12.swift 元祖

/*

元祖:

在其它語言中很早就是有元祖這個概念, 但是對於OC程序員來說這是一個新的概念

將多個相同或者不同類型的值用一個小括號括起來就是一個元祖

*/

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

print(student)

print(student.0)

print(student.1)

print(student.2)


/*

元祖其實和結構體很想, 只是不需要提前定義類型. 那麼如果不定義類型元祖是什麼類型呢?

元祖其實是複合類型, 小括號中可以寫任意類型

*/


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

/*

元祖的其它定義方式:指明應用元祖元素的名稱

*/

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

print(student2.name)

print(student2.age)

print(student2.score)


/*

元祖的其它定義方式

通過指定的名稱提取元祖對應的值, 會將對應位置的值 賦值給對應位置的名稱

*/

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

print(name)

print(age)

print(score)


/*

如果不關心元祖中的某個值可以利用_通配符來忽略提取

*/

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

print(name1)

print(age1)


/*

在以前沒有元祖之前COC語言是通過傳入指針或者返回結構體的方式來返回多個值的,而有了元祖之後就可以實現讓一個函數返回多個值

*/


// 元祖的使用 


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


// 給每一個元素起別名

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


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

// 元祖也是一個數據集合,可以在集合中定義一組數據

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

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

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


// 用一個數據類型來描述網絡請求錯誤

// errorCode/errorInfo

[404, "Not Found"]

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


// 用元祖描述錯誤信息

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("沒有找到主機")

default :

    print("其他錯誤")

}


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

errorCode2

errorInfo2


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章