/*
創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的岳普湖網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
元祖:
在其它語言中很早就是有元祖這個概念,但是對于OC程序員來說這是一個新的概念
將多個相同或者不同類型的值用一個小括號括起來就是一個元祖
*/
let student = ("lnj", 30, 99.8)
print(student)
print(student.0)
print(student.1)
print(student.2)
/*
元祖其實和結(jié)構(gòu)體很想,只是不需要提前定義類型.那么如果不定義類型元祖是什么類型呢?
元祖其實是復(fù)合類型,小括號中可以寫任意類型
*/
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)
/*
元祖的其它定義方式:
通過指定的名稱提取元祖對應(yīng)的值,會將對應(yīng)位置的值賦值給對應(yīng)位置的名稱
*/
let (name , age , score) = ("lnj", 30, 99.8)
print(name)
print(age)
print(score)
/*
如果不關(guān)心元祖中的某個值可以利用_通配符來忽略提取
*/
let (name1 , age1 , _) = ("lnj", 30, 99.8)
print(name1)
print(age1)
/*
在以前沒有元祖之前C和OC語言是通過傳入指針或者返回結(jié)構(gòu)體的方式來返回多個值的,而有了元祖之后就可以實現(xiàn)讓一個函數(shù)返回多個值
*/
//元祖的使用
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
// ------------------使用元祖------------------------
//元祖也是一個數(shù)據(jù)集合,可以在集合中定義一組數(shù)據(jù)
//元祖的定義使用:(元素1,元素2)
("1001","張三",19,1.88)
(id : "1001", name : "張三", age : 19, height : 1.88)
//用一個數(shù)據(jù)類型來描述網(wǎng)絡(luò)請求錯誤
// 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