前言:
本篇为视频学习笔记
元祖:多种数据类型组合在一起,如下:
let http404Error = (404, "Not Found") print("The status code is \(http404Error.0)")
是一个组合,怎么访问里面每一个成员呢?
★ 第一种方式:序号
http404Error.0 http404Error.1
如上图,我们就可以拿到值了。
元祖一说完,你也许就会想到结构体,结构体看起来是一个对象,它可以拥有两个成员,而且成员类型可以是不一样的,目前看来跟结构体有点像,但它的本质不是结构体。
上面代码意思是,平时我们在发送网络请求时,服务器会返回给我们结果是404还是200,404代表找不到,200代表成功,上面一个叫状态码,一个叫描述信息。如果状态码是404,代表找不到Not Found。
如果要表达服务器返回的一个信息的话,你用http404Error这种元祖类型刚好用的上,因为服务器返回的一个是状态码,一个是描述。
★ 第二种方式:赋值-1
我们可以把一个已经存在的元祖变量/常量,赋值给 let (statusCode, statusMessage) 这样一个家伙,如下:
let (statusCode, statusMessage) = http404Error print("The status code is \(statusCode)")
这依然是一个元祖,只不过这一个元祖对应的两个数据分别写了名称,一个叫statusCode,一个叫statusMessage。到时候这两个可以单独拿出来。
意思是http404Error中的404,赋值给了statusCode,Not Found赋值给了statusMessage。
★ 第二种方式:赋值-2
let (justTheStatusCode, _) = http404Error
依然是把右边的元祖赋值给了左边的元祖,你会发现第一个家伙是有名称的,第二个家伙是意思是,你不想接受它的值,或是不想使用。完全可以使用下划线,去代表忽略这个值。说白了,只有404赋值给了justTheStatusCode,下划线所对应的Not Found直接忽略了。到时候,你就可以拿到justTheStatusCode这个家伙去用
★ 第三种方式:赋值-3
元祖定义除了之前直接写它,元祖之中包含的值以外,也可以直接也可以每一个值写一个名称,也就是一个标签,如下:
let http200Status = (statusCode: 200 ,description:"OK") print("The status code is \(http200Status.statusCode)")