Swift Up and Running——使用Tuple打包类型
2015-12-07 16:35
417 查看
返回视频
高清教学视频
很多时候,我们需要把多个不同类型的值,打包成一个单位处理。
例如,返回一个HTTP状态信息:
状态码: 200; 状态消息: HTTP OK
状态码: 404; 状态消息: File not found
或者,返回一条数据库用户信息记录:
姓名: Mars; 工号: 11; 电子邮件: 11@boxue.io
在Swift里,我们可以使用Tuple 来很方便的处理类似的问题。
我们使用下面的方式,来定义一个Tuple:
(value1, value2, value3...)
例如,定义我们在开始举例用到的HTTP状态码:
我们还可以给Tuple中的每一个数据成员指定一个名字,例如,定义一个表达用户信息记录的Tuple:
(name1: value1, name2:
value2, name3: value3...)
定义好Tuple之后,我们可以使用下面的方式访问Tuple中的数据成员:
如果我们在定义Tuple时,指定了Tuple成员的名字,我们就可以像下面这样访问这些数据成员:
我们在定义Tuple的时候,还可以把一个Tuple的值,一一对应的拆分到不同的变量上,这叫做Tuple
Decomposition。例如,对于我们之前 定义过的success,我们可以这样定义一个新的Tuple:
从代码里我们就可以看到,之后,我们就可以直接访问successCode和successMessage的值了,这可以提高我们处理Tuple成员时候的 代码可读性。但是,要说明的是,我们这里是使用success的值,构建了一个新的Tuple,因此修改succeCode或
successMessage的值,不会影响到原来的success。例如,我们修改successCode:
从结果我们可以看到,之前的success的值没有被修改。另外,如果我们只是想对应到Tuple中特定的成员,而忽略其它成员,我们可以使用下划线'_'来代表那些不需要被对应的成员。例如:
每一个Tuple的类型,都是由Tuple中所有数据成员一起决定给的。例如,对于一开始我们定义的success和me,它们的类型就分别是:(Int, String)和
(String, Int, String)。当我们需要用type annotation定义一个Tuple的时候,
我们可以这样写:
使用Tuple打包类型
高清教学视频很多时候,我们需要把多个不同类型的值,打包成一个单位处理。
例如,返回一个HTTP状态信息:
状态码: 200; 状态消息: HTTP OK
状态码: 404; 状态消息: File not found
或者,返回一条数据库用户信息记录:
姓名: Mars; 工号: 11; 电子邮件: 11@boxue.io
在Swift里,我们可以使用Tuple 来很方便的处理类似的问题。
定义一个Tuple
我们使用下面的方式,来定义一个Tuple:(value1, value2, value3...)
例如,定义我们在开始举例用到的HTTP状态码:
//: #### Define a tuple let success = (200, "HTTP OK") let fileNotFound = (404, "File not found")
我们还可以给Tuple中的每一个数据成员指定一个名字,例如,定义一个表达用户信息记录的Tuple:
(name1: value1, name2:
value2, name3: value3...)
//: #### Define a tuple let me = (name: "Mars", no: 11, email: "11@boxue.io")
访问Tuple中的数据成员
定义好Tuple之后,我们可以使用下面的方式访问Tuple中的数据成员://: #### Access tuple content success.0 success.1 fileNotFound.0 fileNotFound.1
如果我们在定义Tuple时,指定了Tuple成员的名字,我们就可以像下面这样访问这些数据成员:
//: #### Access tuple content me.name me.no me.email
Tuple Decomposition
我们在定义Tuple的时候,还可以把一个Tuple的值,一一对应的拆分到不同的变量上,这叫做TupleDecomposition。例如,对于我们之前 定义过的success,我们可以这样定义一个新的Tuple:
var (successCode, successMessage) = success print(successCode) print(successMessage)
从代码里我们就可以看到,之后,我们就可以直接访问successCode和successMessage的值了,这可以提高我们处理Tuple成员时候的 代码可读性。但是,要说明的是,我们这里是使用success的值,构建了一个新的Tuple,因此修改succeCode或
successMessage的值,不会影响到原来的success。例如,我们修改successCode:
successCode = 201 success
从结果我们可以看到,之前的success的值没有被修改。另外,如果我们只是想对应到Tuple中特定的成员,而忽略其它成员,我们可以使用下划线'_'来代表那些不需要被对应的成员。例如:
let (_, errorMessage) = fileNotFound print(errorMessage)
Tuple type
每一个Tuple的类型,都是由Tuple中所有数据成员一起决定给的。例如,对于一开始我们定义的success和me,它们的类型就分别是:(Int, String)和(String, Int, String)。当我们需要用type annotation定义一个Tuple的时候,
我们可以这样写:
var redirect: (Int, String) = (302, "temporary redirect)
相关文章推荐
- Swift Up and Running——字符、Unicode和字符串
- Swift Up and Running——整数和浮点数
- swift学习之UIButton
- swift学习之Label
- swift实际使用中遇到的问题及解决
- fir.im Weekly - 进击的 Swift
- Ubuntu 15.10部署Swift开发环境
- [Swift]swift单例模式的三种写法
- Swift Up and Running——变量和常量
- Swift中使用do-catch语句进行异常处理
- 《Swift 的界面之间的传值,详细介绍3种传值方式》 正向传值、协议传值、闭包
- 2015年科技巨头的十个开源产品,不只是.NET、Swift
- fir.im Weekly - 进击的 Swift
- Swift基础知识
- 《从零开始学Swift》学习笔记(Day 45)——重写方法
- 几个 Swift 代码规范 #swiftlang
- 《从零开始学Swift》学习笔记(Day 45)——重写方法
- # for 循环
- # 变量和常量
- swift基本语法简介