图书介绍
Swift进阶PDF|Epub|txt|kindle电子书版本网盘下载
![Swift进阶](https://www.shukui.net/cover/35/30444802.jpg)
- 克里斯·安道夫(Chris Eidhof) 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121312007
- 出版时间:2017
- 标注页数:290页
- 文件大小:38MB
- 文件页数:302页
- 主题词:程序语言-程序设计
PDF下载
下载说明
Swift进阶PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 介绍1
1.1 本书所面向的读者2
1.2 主题3
1.3 术语6
1.4 Swift风格指南9
第2章 内建集合类型11
2.1 数组11
数组和可变性11
数组和可选值13
数组变形14
数组类型25
2.2 字典27
可变性28
有用的字典扩展28
Hashable要求30
2.3 Set31
集合代数32
索引集合和字符集合33
在闭包中使用集合34
2.4 Range34
第3章 集合类型协议37
3.1 序列37
迭代器38
无限序列44
不稳定序列44
序列和迭代器之间的关系45
子序列46
3.2 集合类型47
为队列设计协议48
队列的实现50
遵守Collection协议51
遵守ExpressibleByArrayLiteral协议54
关联类型55
3.3 索引57
索引失效58
索引步进59
链表60
3.4 切片70
实现自定义切片71
切片与原集合共享索引74
通用的PrefixIterator74
3.5 专门的集合类型75
前向索引76
双向索引77
随机存取索引78
MutableCollection79
RangeReplaceableCollection80
3.6 总结82
第4章 可选值84
4.1 哨岗值84
4.2 通过枚举解决魔法数的问题86
4.3 可选值概览88
if let88
while let89
双重可选值92
if var and while var94
解包后可选值的作用域95
可选链97
nil合并运算符99
可选值map101
可选值flatMap103
使用flatMap过滤nil104
可选值判等105
switch-case匹配可选值108
可选值比较109
4.4 强制解包的时机109
改进强制解包的错误信息111
在调试版本中进行断言111
4.5 多灾多难的隐式可选值113
隐式可选值行为113
4.6 总结114
第5章 结构体和类115
5.1 值类型116
5.2 可变性117
5.3 结构体120
5.4 写时复制127
写时复制(昂贵方式)129
写时复制(高效方式)130
写时复制的陷阱132
5.5 闭包和可变性134
5.6 内存135
weak引用137
unowned引用138
5.7 闭包和内存139
结构体和类使用实践139
5.8 闭包和内存142
引用循环143
捕获列表144
5.9 总结145
第6章 函数146
6.1 函数的灵活性152
函数作为数据155
6.2 局部函数和变量捕获161
6.3 函数作为代理163
Foundation框架的代理163
结构体代理164
使用函数,而非代理165
6.4 inout参数和可变方法167
嵌套函数和inout169
&不意味inout的情况170
6.5 计算属性和下标171
延迟存储属性172
使用不同参数重载下标173
下标进阶175
6.6 自动闭包175
@escaping标注177
6.7 总结179
第7章 字符串180
7.1 不再固定宽度180
字位簇和标准等价181
7.2 字符串和集合184
字符串与切片187
7.3 简单的正则表达式匹配器189
7.4 ExpressibleByStringLiteral192
7.5 String的内部结构193
Character的内部组织结构199
7.6 编码单元表示方式199
7.7 CustomStringConvertible和CustomDebugStringConvertible201
7.8 文本输出流203
7.9 字符串性能207
7.10 展望211
第8章 错误处理212
8.1 Result类型213
8.2 抛出和捕获214
8.3 带有类型的错误216
8.4 将错误桥接到Objective-C217
8.5 错误和函数参数218
Rethrows220
8.6 使用defer进行清理221
8.7 错误和可选值222
8.8 错误链223
链结果223
8.9 高阶函数和错误224
8.10 总结226
第9章 泛型228
9.1 重载228
自由函数的重载229
运算符的重载230
使用泛型约束进行重载231
使用闭包对行为进行参数化235
9.2 对集合采用泛型操作236
二分查找236
泛型二分查找238
集合随机排列241
SubSequence和泛型算法244
重写与优化246
9.3 使用泛型进行代码设计247
提取共通功能249
创建泛型数据类型250
9.4 泛型的工作方式251
泛型特化253
全模块优化254
9.5 总结255
第10章 协议256
10.1 面向协议编程258
协议扩展260
在协议扩展中重写方法260
10.2 协议的两种类型262
类型抹消264
10.3 带有Self的协议267
10.4 协议内幕269
性能影响270
10.5 总结271
第11章 互用性272
11.1 实践:封装CommonMark272
封装C代码库272
封装cmark_node类型273
更安全的接口278
11.2 低层级类型概览284
11.3 函数指针286