元组:
在其它语言中很早就有元组这个概念, 但是对于OC程序员来说这是一个新的概念
将多个相同或者不同类型的值用一个小括号括起来就是一个元组
let student = ("solozyx", 99, 171) //(.0 "solozyx", .1 99, .2 171.1)
print(student) //"("solozyx", 99, 171.1)\n"
print(student.0) //"solozyx\n"
print(student.1) //"99\n"
print(student.2) //"171.1\n"
元组其实和结构体很像, 只是不需要提前定义类型. 那么如果不定义类型元组是什么类型呢?
元组其实是复合类型, 小括号中可以写任意类型
let student1: (String, Int, Double) = ("solozyx", 99, 171.1)
元组的其它定义方式:指明应用元组元素的名称
let student2 = (name:"solozyx",age:99,score:171.1) //(.0 "solozyx", .1 99, .2 171.1)
print(student2.name) //"solozyx\n"
print(student2.age) //"99\n"
print(student2.score) //"171.1\n"
print(student2.0) //"solozyx\n"
print(student2.1) //"99\n"
print(student2.2) //"171.1\n"
元组的其它定义方式:
通过指定的名称提取元组对应的值, 会将对应位置的值 赋值给对应位置的名称
let (name , age , score) = ("solozyx", 99, 171.1)
print(name) //"solozyx\n"
print(age) //"99\n"
print(score) //"171.1\n"
如果不关心元组中的某个值可以利用 _ 通配符来忽略提取
let (name1 , age1 , _) = ("solozyx", 99, 171.1)
print(name1) //"solozyx\n"
print(age1) //"99\n"
在以前没有元组之前C和OC语言是通过传入指针或者返回结构体的方式来返回多个值的,而有了元组之后就可以实现让一个函数返回多个值