Swift学习笔记(四)——高级数据类型之元组详解

前端之家收集整理的这篇文章主要介绍了Swift学习笔记(四)——高级数据类型之元组详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

元组作为一种高级数据类型是很多其他语言中所没有的,Java,C,C++中都没有元组的概念,在Python中有元组的概念。所以相对来说比较特殊,我们要好好学习一下。

Tuples (元组),可以将多个不同的值集合成一个数据,如(true,"Jack","男"),(404,"Not Found")等等。特点就是可以有任意多个值,不同的值可以是不同的类型。

(1)声明一个元组:表示注册信息。注意:元组可以声明为常量let,也可以声明为变量var。

var registerInfo=(true,"男")

如图可以显示元组中的信息,其中的索引值分别为0,1,2.。。。(是不是跟数组有点像呢?)



(2)如何取出元组中的值呢?


方法一:

再定义一个元组,为元组中的每一项声明一个名称,然后进行赋值,救护一一对应。

var registerInfo=(true,"男")

var (isRegisterSuccess,name,gender)=registerInfo    //声明另一个元组;每一项一一对应

isRegisterSuccess   //输出元组中的值;
name
gender

输出结果如下:


方法二:

根据元组名称和索引值进行取值。

var registerInfo=(true,"男")

registerInfo.0
registerInfo.1
registerInfo.2

输出结果:


方法三:

方法一较为麻烦,方法二不够直观,可以把上述两种方法结合起来。再声明一个元组的时候就以键值对的形式存放。每一个值对应一个属性,在取值的时候直接根据元组名和属性取出来就可以了。代码如下:

var registerInfo=(isRegisterSuccess:true,name:"Jack",gender:"男")
registerInfo.isRegisterSuccess
registerInfo.name
registerInfo.gender

输出结果:完全符合我们的预期。


(3)使用_下划线忽略元组部分值

var loginRes=(true,"Jack")
var (isLoginSeccess,_)=loginRes     //是否登陆不关心第二个姓名值;
if isLoginSeccess{
    println("登录成功")
}

输出结果:

.


(4)元素变量可以修改

用var声明的元组变量可以修改值,用let声明的元组常量不能修改值。示例代码如下:

var loginRes=(isLoginSuccess:true,name:"Jack")
loginRes.isLoginSuccess = false;
loginRes.name = "Mike"

loginRes.isLoginSuccess
loginRes.name

输出结果:符合预期,元组内的值成功被修改

.


(5)元组的类型到底是什么?

就像整型的类型是Int,字符串的类型是String,那么元组的类型到底是什么呢?其实元组的类型是一种组合类型。是可以由其他基本类型组合而成的类型;通过一行代码来感受一下:

var registerInfo:(Bool,String,String)=(true,"男")

示例代码中,元组registerInfo的类型就(Bool,String).是不是很奇怪呢?哈哈。


github主页:https://github.com/chenyufeng1991 。欢迎大家访问!

猜你在找的Swift相关文章