1.元组(tuple)使用圆括号把多个值组合成一个复合值,******元组内的值可以使用任意类型,元组并不要求元组内的值具有相同的类型----可以拿C语言中的结构体,java中的javaBean来类比,个人认为,这是元组的最大的优点。它比前两者方便来许多。
2.定义元组类型的变量:
(1). var yuanzu = (128, 12.34, "swift", true);//定义来元组变量,并指定初始值,系统会自动判断该元组类型为(Int, Float, String, Bool)。
(2). var score :(Int, Int, String, Double)
score = (12, 34, "及格", 45.34)
先使用元组类型来定义元组变量,然后为元组变量赋予指定类型的值。
3.元组中的成员也可以再次是元组,例如:
var test : (Int, (Int, String), String)
test = (12, (34, "Swift"), "Object-c")
4.元组的输出像字符串一样:
print("score元组的成员是:\(score)")
print(test元组的成员是:\(test)")
5.获取元组中的元素值:Swift允许通过下标来访问元组的单个元素----元组的下标从0开始----跟访问数组是相同的。
举个栗子:print(test.0, test.1.0, test.1.1, test.2)
6. Swift中允许将元组的元素拆分成单个的变量或常量。
var (a1, a2, a3, a4) = score;
var (b1, b2, b3, _) = score
**注意,这里要省略的元素必须以下划线作为占位符,不然的话编译会报错。
7.为元组中的元素命名----定义元组时除了简单地用括号将多个值括起来之外,还可以使用key:value的形式来定义元组,这种形式相当于给元
组中的每一个元素都指定名字----类比于Java中map类型。
举个栗子:var health = (height:182,体重:80, status:"良好")
var score = (Swift:int, oc:Int, java:Double, c++:String)
此时,对元组score赋值有两种方式:
(1). score = (34, 98, 12.01, "abcde") ----顺序必须对应
(2). score = (java:12.01, Swift:34, c++:"abcde", oc:98)----与顺序无关
8.为元组命名之后就可以使用它的元素名来访问了,举个栗子:
print(score.oc,score.java);
9.元组还有非常实用的一点是:在Swift函数支持的返回的多个返回值的时候,多个返回值也是以元组的形式返回的。