图书介绍

Swift进阶PDF|Epub|txt|kindle电子书版本网盘下载

Swift进阶
  • 克里斯·安道夫(Chris Eidhof) 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121312007
  • 出版时间:2017
  • 标注页数:290页
  • 文件大小:38MB
  • 文件页数:302页
  • 主题词:程序语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐