码迷,mamicode.com
首页 > 编程语言 > 详细

Swift入门(三)——元组(Tuple)

时间:2015-07-30 23:20:17      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:tuple   元组   swift   解绑   入门   

定义

元组是一个包含了若干个相关联变量的对象。

元组的创建

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",20)
var (name , _) = 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入门(一)——基本语法

Swift入门(二)——字符与字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。

Swift入门(三)——元组(Tuple)

标签:tuple   元组   swift   解绑   入门   

原文地址:http://blog.csdn.net/abc649395594/article/details/47158931

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!