/*
元祖:
在其它语言中很早就是有元祖这个概念, 但是对于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)
/*
在以前没有元祖之前C和OC语言是通过传入指针或者返回结构体的方式来返回多个值的,而有了元祖之后就可以实现让一个函数返回多个值
*/
// 元祖的使用
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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。