Swift入门(三)——元组(Tuple)
定义元组是一个包含了若干个相关联变量的对象。 元组的创建var newTuple = ("kt",20)
//由于Swift的类型推导,newTuple被推导为(String,Int)类型的变量
元组的解绑几个变量一旦联合在一起,组成了一个元组,他们就被“绑定”了,要想从一个元组中单独取出某一个数据时,需要解绑元组。 直接解绑直接解绑是最简单的一种解绑方式,只要定义若干个变量与元组中的变量一一对应即可。 var newTuple = ("kt",20)
var (name,age) = newTuple
println("name = (name)")
println("age = (age)")
输出结果: name = kt
age = 20
过滤元素解绑直接解绑使用简单,但是可能会增加一些代码量。如果元组中有100个数据,而我们只对一个数据感兴趣,可以用_ 来代替我们不感兴趣的变量名,也就是过滤掉他们。代码如下: var newTuple = ("kt",_) = newTuple
println("name = (name)")
输出结果: name = kt
下标解绑如果还是觉得需要写出变量名麻烦,还可以使用更简单的下表解绑。这时候可以把元组当做数组,直接写出变量的在元组中的下标即可。(下标从0开始) var newTuple = ("kt",20)
println("name = (newTuple.0)") //输出结果和之前一样。
但是需要注意的是,这样的写法有一个缺点:下标不可以用变量来表示,也就是说这样的写法是错误的: var newTuple = ("kt",20)
let index:Int = 0
println("name = (newTuple.index)")
//错误,报错:“(String,Int)doesn't not have a member named 'index'”
试图越界访问一个不存在的数据会导致编译错误。 变量名解绑如果在定义元组的时候,指定了变量的变量名,还可以根据变量的变量名来解绑。 var newTuple = (name: "kt",age: 20)
println("name = (newTuple.name)")
与用下标解绑一样,这里的变量名name不可以用一个具有”name”值的String类型变量来代替。 总结元组(Tuple)的概念对于没有接触过脚本语言的程序猿来说,是比较新的概念。但是元组既不复杂也不神秘,很多时候用Struct结构体或者类都可以解决。可以把元组理解为一种只能存放数据,却没有定义方法的轻量级数据结构。 附录查看完整专栏——《Swift轻松入门》【Swift入门(一)——基本语法】 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |