元组类型
简单的说可以认定为一个集合,但是可以进行不同类型的数据封装,可以进行整体的传递和操作
定义一个元组的几种方式
//通过类型推断,推断出元组中的值
var a = (1,15.6,"hello",true,"a")
//通过自己定义的方式创建,但是参数类型必须与前边定义类型顺序相同
var b:(Int,String,Double,Bool) = (1,"world",15.2,false)
//在什么都不定义的情况下,可以为空
var c = ()
//但是如果定义了,不能为空,元组中必须传值
var d:(Int) = (1)
元组的相关操作:
1.根据下标,索引取值
2.根据索引来改变值
3.元组的传递
//根据下标,索引取值
print(a.0)
/* 输出结果为:1 */
//也可以根据索引来改变值,但只有变量形式可以改变,常量形式不能改变
a.0 = 100
print(a.0)
/* 输出结果为:100 */
//元组的传递,是值传递,而不是引用,相当于是拷贝一份给变量,更改f中的并不会影响a中的。
var f = a
print(a)
print(f)
f.0 = 200
print(f)
/* 输出结果 :
(100, 15.6, "hello", true, "a")
(100, 15.6, "hello", true, "a")
(200, 15.6, "hello", true, "a")
*/
//也可以直接定义参数名
print("====直接定义参数名====")
var test = (name1:1,name2:"2",name3:false)
print(type(of: test))
print(test)
print(test.name1)
var woc:(name1:Int,name2:String) = (1,"hello")
print(type(of: woc))
print(woc)
//自动赋值
let (name1,name2,name3,name4)=(1,"swift",false,true)
print(type(of: name1))
print(name1)
print(type(of: name2))
print(name2)
print(type(of: name3))
print(name3)
print(type(of: name4))
print(name4)
var (par1,_,par2) = ("参数1","参数2","参数3")
print(par1,par2)
感兴趣的可以直接将上边的代码复制到Xcode中运行看看实际效果
最后呢提前书写了一部分下一张需要预习的内容
代码如下:
print("提前了解---------------")
var data = (name1:1,name2:"hello",name3:false)
func handle(parm:(Int,String,Bool)) -> (Int,String,Bool){
var data_temp = parm
data_temp.0 = parm.0 + 1
data_temp.1 = parm.1 + " world"
data_temp.2 = false
return data_temp
}
print(data)
print("-------------------")
var data2 = handle(parm:data)
print(data2)
var test01 = (1,1.3,"",false)
print(type(of: test01))