Swift

元组(tuples):把多个值组合成一个复合值,元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是:

  • 元组的长度任意
  • 元组中的数据可以是不同的数据类型

元组的定义很简单,用小括号括起来,然后以逗号隔开就可以了

直接上代码:

 1 //MARK: - 元组
 2 //定义一个元组
 3 //方法一:直接初始化一个元素(使用Swift隐式转换的特点)
 4 let tuples = ("苹果",["iOS","html5","Android"])  //tuples 的类型是(String,Array), 值是("苹果",["iOS","html5","Android"])
 5 print(tuples)
 6 //方法二:显示初始化的方式
 7 let tuples1 : (String,Array) = ("安卓",["iOS","html5","Android"])
 8 print(tuples1)
 9 //*注* 关于元组类型的说明:你可以把任意顺序的类型组合成一个元组,这个元组可以包含所有类型。只要你想,你可以创建一个类型为(Int, Int, Int)或者(String, Bool)或者其他任何你想要的组合的元组
10 
11 //取出元组中的值
12 //第一种取值方式:直接把元组赋值给另外一个常量,根据相关的标记进行取值
13 let tuples_new : (appStyle:String,course:Array) = tuples
14 var classInfo = tuples_new.appStyle + tuples_new.course[0] + tuples_new.course[1] + tuples_new.course[2]
15 print(classInfo)
16 
17 //第二种取值方式:直接根据下标进行取值
18 let classInfoNew = tuples_new.0 + tuples_new.1[0] + tuples_new.1[1] + tuples_new.1[2]
19 print(classInfoNew)

可变元组和不可变元组

用var定义的元组就是可变元组,let定义的就是不可变元组。不管是可变还是不可变元组,元组在创建后就不能对其长度进行增加和删除之类的修改,只有可变元组能在创建之后修改元组中的数据

1 var superTuples = (name:"asd", 12, ["111", "222"])
2 superTuples.name = "qwe"
3 print(superTuples.name)  //会打印name变成qwe
4 
5 let superTuples = (name:"asd", 12, ["111", "222"])
6 superTuples.name = "qwe"
7 print(superTuples.name)  //会报错

需要注意的是,可变元组虽然可以修改数据,但却不能改变其数据的数据类型

1 var superTuplesType = (name:"asd", 12, ["111", "222"])
2 superTuplesType.name = 1
3 print(superTuples.name)  //会报错
原文地址:https://www.cnblogs.com/crazygeek/p/5512839.html