当前位置:主页 > 计算机电子书 > 程序设计 > Swift下载
Swift进阶

Swift进阶 PDF 全格式完整版

  • 更新:2020-08-03
  • 大小:7.6 MB
  • 类别:Swift
  • 作者:Chris、Eidhof(克里斯·安道夫
  • 出版:电子工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

在本书中,我们涵盖了Swift程序设计的一些进阶话题。如果你已经通读Apple的Swift编程指南,并且想要深入探索关于这门语言的更多内容,那么这本书正适合你!Swift非常适合用来进行系统编程,而同时它也能被用于书写高层级的代码。我们在书中既会研究像是泛型、协议这样的高层级抽象的内容,也会涉足像是封装C代码以及字符串内部实现这样的低层级话题。

目录

  • 第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 Set 31
  • 集合代数32
  • 索引集合和字符集合33
  • 在闭包中使用集合34
  • 2.4 Range 34
  • 第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
  • 通用的PrefixIterator 74
  • 3.5 专门的集合类型75
  • 前向索引76
  • 双向索引77
  • 随机存取索引78
  • MutableCollection 79
  • RangeReplaceableCollection 80
  • 3.6 总结82
  • 第4章可选值84
  • 4.1 哨岗值84
  • 4.2 通过枚举解决魔法数的问题86
  • 4.3 可选值概览88
  • if let 88
  • while let 89
  • 双重可选值92
  • if var and while var 94
  • 解包后可选值的作用域95
  • 可选链97
  • nil 合并运算符99
  • 可选值map 101
  • 可选值flatMap 103
  • 使用flatMap 过滤nil 104
  • 可选值判等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
  • 嵌套函数和inout 169
  • & 不意味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 ExpressibleByStringLiteral 192
  • 7.5 String 的内部结构193
  • Character 的内部组织结构199
  • 7.6 编码单元表示方式199
  • 7.7 CustomStringConvertible 和
  • CustomDebugStringConvertible 201
  • 7.8 文本输出流203
  • 7.9 字符串性能207
  • 7.10 展望211
  • 第8章错误处理212
  • 8.1 Result 类型213
  • 8.2 抛出和捕获214
  • 8.3 带有类型的错误216
  • 8.4 将错误桥接到Objective-C 217
  • 8.5 错误和函数参数218
  • Rethrows 220
  • 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 实践:封装CommonMark 272
  • 封装C代码库272
  • 封装cmark_node 类型273
  • 更安全的接口278
  • 11.2 低层级类型概览284
  • 11.3 函数指针286

资源下载

资源下载地址1:https://pan.baidu.com/s/1p6zcgsVNGVqdnlGDekB3qQ

相关资源

网友留言