您的位置:首页 > 移动开发 > Swift

Swift 的元组介绍

2014-12-16 10:45 246 查看


元组的定义

元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是:

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

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

var userInfo = ("Bannings" ,true, 22)  


读取元组中的数据

这样就创建了一个元组,而想要获取其中的值,则有多种方法,可以直接通过索引来取:

userInfo.0  //Bannings  

userInfo.1  //true  

userInfo.2  //22  

但是这样并不方便,也不直观,那么可以用下面这种方式来访问:

let (name, isMale, age) = userInfo  

name    //Bannings  

isMale  //true  

age     //22  

把已知的userInfo赋给一个全是变量名组成的新的元组,那么就能以变量名去访问元组中的数据了。

还有另外一种方法也能以变量名的方式去访问元组中的数据,那就是在元组初始化的时候就给它一个变量名:

let userInfo = (name:"Bannings" ,isMale:true, age:22)  

userInfo.name       //Bannings  

userInfo.isMale     //true  

userInfo.age        //22  

跳过不关心的值

除此之外,元组还支持“跳过”某些你并不关心的值,只需要用下划线(_)去忽略它们就行了:

let (name,  _, age) = userInfo  

name    //Bannings  

//isMale  这个就不能访问了  

age     //22  

或者是在该元组初始化的时候不给它指定变量名:

let userInfo = (name:"Bannings" ,true, age:22)  

userInfo.name       //Bannings  

//userInfo.isMale     这个就不能访问了  

userInfo.age        //22  

可变元组和不可变元组

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

var userInfo = (name:"Bannings" ,true, age:22)<span style="white-space:pre">    </span>//定义可变元组  

userInfo.name = "newName"  

userInfo.name   //newName  

  

let userInfo1 = (name:"Bannings" ,true, age:22)<span style="white-space:pre">   </span>//定义不可变元组  

userInfo1.name = "newName"  //报错,不可修改  

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

var userInfo = (name:"Bannings" ,true, age:22)  

userInfo.name = 1   //报错  
转载至bannings
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  swift