Swift入门经典(第2版)

978-7-115-44439-4
作者: 【美】BJ Miller(BJ 米勒)
译者: 陈宗斌
编辑: 傅道坤
分类: iOS

图书目录:

第 1章 Swift开发环境简介 1

1.1 什么是Swift 2

1.2 起步 2

1.2.1 四处看看 2

1.2.2 Xcode playground 5

1.2.3 Swift REPL 7

1.3 小结 8

1.4 问与答 9

1.5 作业 9

第 2章 学习Swift的基本数据类型 11

2.1 Swift中的常量 11

2.2 Swift中的变量 12

2.3 数据类型简介 13

2.3.1 类型推断 13

2.3.2 数据类型 14

2.3.3 初始化值 19

2.4 小结 20

2.5 问与答 20

2.6 作业 20

第3章 使用Swift中的运算符 22

3.1 一元运算符 22

3.1.1 递增和递减运算符 23

3.1.2 逻辑“非”运算符 23

3.1.3 一元减法运算符 23

3.2 二元运算符 24

3.2.1 标准算术运算符 24

3.2.2 余数运算符 24

3.2.3 赋值运算符 25

3.2.4 复合赋值运算符 25

3.2.5 比较运算符 25

3.2.6 范围运算符 26

3.2.7 逻辑运算符 27

3.3 三元条件运算符 29

3.4 小结 29

3.5 问与答 30

3.6 作业 30

第4章 处理集合类型 32

4.1 数组 32

4.1.1 用于访问值的索引和下标 34

4.1.2 操作数组 35

4.1.3 常用数组方法和属性 38

4.2 字典 38

4.2.1 键-值对 39

4.2.2 初始化字典 39

4.2.3 关于字典的类型推断 40

4.2.4 向字典中添加数据 40

4.2.5 从字典中移除键-值对 41

4.2.6 常用字典方法和属性 42

4.3 集 42

4.4 元组 46

4.5 小结 46

4.6 问与答 47

4.7 作业 47

第5章 利用条件语句控制程序流程 49

5.1 if语句 49

5.2 switch语句 53

5.2.1 不仅仅匹配Int值 54

5.2.2 switch语句的范围匹配 55

5.2.3 switch语句的元组匹配 57

5.2.4 利用where关键字细化switch case

语句 57

5.2.5 转移执行的控制权 58

5.2.6 稍微高 级一点的模式匹配 60

5.3 小结 60

5.4 问与答 61

5.5 作业 61

第6章 了解可选值 63

6.1 什么是可选值 63

6.2 怎样将变量指定为可选的 64

6.3 包装和解包可选变量 65

6.3.1 利用解包运算符进行强制解包 65

6.3.2 可选绑定以解包变量 66

6.3.3 隐式解包的可选值 67

6.3.4 nil合并运算符 68

6.3.5 解包多个可选值 68

6.4 可选值的用例 69

6.5 小结 71

6.6 问与答 71

6.7 作业 72

第7章 利用循环迭代代码 73

7.1 两种循环类型 73

7.1.1 while循环 74

7.1.2 for循环 77

7.2 在循环中转移控制权 84

7.2.1 利用continue语句转移控制权 84

7.2.2 利用break语句转移控制权 84

7.3 小结 85

7.4 问与答 85

7.5 作业 86

第8章 使用函数执行动作 88

8.1 Swift中函数的性质 89

8.2 一般的函数语法和结构 89

8.3 没有参数和返回类型的函数 90

8.4 函数的类型 91

8.5 带有参数的函数 91

8.6 带有可变参数的函数 93

8.7 具有返回类型的函数 94

8.8 外部参数名称 98

8.9 默认的参数值 99

8.10 利用in-out形参改变实参值 99

8.11 提早退出 100

8.12 延迟执行 101

8.13 小结 102

8.14 问与答 102

8.15 作业 102

第9章 了解高阶函数和闭包 104

9.1 高阶函数 104

9.1.1 返回函数类型 105

9.1.2 在函数内嵌套函数 107

9.1.3 使用函数作为函数参数 109

9.2 闭包 110

9.2.1 闭包的结构 111

9.2.2 使用结尾闭包 117

9.3 小结 117

9.4 问与答 118

9.5 作业 118

第 10章 学习结构体和类 120

10.1 Swift中的结构体和类概述 120

10.2 Swift结构体与类之间的

 共同之处 122

10.2.1 定义属性 122

10.2.2 实例方法 123

10.2.3 结构体与类的相似之处 126

10.3 结构体与类之间的区别 128

10.3.1 改变结构体属性 129

10.3.2 比较类引用的相等性 130

10.3.3 比较实例的相等性 131

10.4 何时使用类或结构体 131

10.5 小结 131

10.6 问与答 132

10.7 作业 132

第 11章 实现类继承 134

11.1 什么是继承 134

11.2 确定基类 135

11.3 创建子类 136

11.4 重写继承的方法 137

11.5 访问super 140

11.6 阻止重写 141

11.7 类的同一性 143

11.8 何时使用类继承 144

11.9 小结 145

11.10 问与答 145

11.11 作业 145

第 12章 利用枚举的功能 148

12.1 了解Swift枚举 148

12.2 Swift枚举的结构 149

12.3 原始值 150

12.3.1 从枚举中获取原始值 150

12.3.2 通过原始值设置枚举值 151

12.4 枚举的简写语法 151

12.5 关联值 153

12.6 切换枚举值 154

12.7 给枚举添加实例方法 155

12.8 小结 157

12.9 问与答 158

12.10 作业 158

第 13章 自定义类、结构体和枚举的

 初始化器 160

13.1 初始化 160

13.1.1 初始化器的目标 161

13.1.2 总是具有初始化器 162

13.2 初始化值类型 162

13.2.1 设置默认值 162

13.2.2 初始化器中的外部参数名 166

13.2.3 初始化类类型 167

13.3 高 级初始化 169

13.3.1 初始化委托 169

13.3.2 类的初始化委托 170

13.3.3 初始化过程 171

13.4 小结 176

13.5 问与答 176

13.6 作业 177

第 14章 深入探讨属性 179

14.1 存储属性 180

14.1.1 实例变量 180

14.1.2 延迟存储属性 180

14.2 计算属性 182

14.3 属性访问器 182

14.3.1 获取器 182

14.3.2 设置器 183

14.4 属性观察器 185

14.5 继承和重写访问器 187

14.6 继承和重写观察器 189

14.7 小结 191

14.8 问与答 191

14.9 作业 192

第 15章 添加高 级类型功能 194

15.1 类型属性和类型方法 194

15.1.1 类型属性 194

15.1.2 计算类型属性 196

15.1.3 类型方法 197

15.2 类型别名 200

15.3 类型访问控制 201

15.4 下标 202

15.4.1 下标重载 205

15.4.2 重写下标 206

15.5 转型和非特定类型 206

15.5.1 确定实例的类型 206

15.5.2 向下转型 208

15.5.3 非特定类型 209

15.6 小结 210

15.7 问与答 210

15.8 作业 211

第 16章 了解内存分配和引用 212

16.1 析构 212

16.2 自动引用计数 215

16.2.1 ARC的工作方式 215

16.2.2 引用关系和行为 215

16.2.3 引用循环 216

16.2.4 解决强引用循环 218

16.2.5 闭包和强引用循环 221

16.3 小结 224

16.4 问与答 224

16.5 作业 225

第 17章 使用协议定义行为 226

17.1 定义协议 226

17.2 创建和采用协议 227

17.3 属性 228

17.4 在协议中定义方法 228

17.5 使用协议名称作为类型 230

17.6 采用和继承多个协议 231

17.7 可选的协议属性和方法 235

17.8 如何检查协议遵从性 236

17.9 把协议用于委托 236

17.10 小结 241

17.11 问与答 241

17.12 作业 242

第 18章 使用扩展添加类型功能 244

18.1 定义扩展 244

18.2 利用扩展添加功能 245

18.2.1 计算实例和类型属性 246

18.2.2 实例方法和类型方法 247

18.2.3 在扩展中添加下标 248

18.2.4 利用扩展添加自定义

 初始化器 249

18.2.5 给扩展添加嵌套类型 251

18.2.6 扩展中的协议采用和遵从性 252

18.3 小结 254

18.4 问与答 254

18.5 作业 254

第 19章 处理可选链接 256

19.1 定义可选链接 256

19.2 链接可选属性 257

19.3 下标 258

19.4 方法 262

19.5 小结 264

19.6 问与答 264

19.7 作业 264

第 20章 泛型简介 266

20.1 泛型简介 266

20.2 类型参数和占位符类型 267

20.3 指定类型约束 268

20.4 创建泛型类型 271

20.5 扩展泛型类型 273

20.6 在协议中使用关联类型 274

20.7 小结 276

20.8 问与答 276

20.9 作业 277

第 21章 了解面向协议编程 278

21.1 协议概览 278

21.2 实现协议 279

21.3 协议扩展简介 279

21.4 创建协议扩展 280

21.5 什么是可自定义的 283

21.6 协议扩展中的类型约束 285

21.7 同种和异种集合 286

21.8 转换协议序列 288

21.9 小结 289

21.10 问与答 290

21.11 作业 290

第 22章 处理错误 292

22.1 错误处理 292

22.2 Swift错误处理 293

22.2.1 自定义错误类型 294

22.2.2 抛出错误 295

22.2.3 捕获错误 297

22.2.4 延迟执行 300

22.3 小结 303

22.4 问与答 304

22.5 作业 304

第 23章 添加与Objective-C之间的

 互操作性 305

23.1 Objective-C的基础知识 305

23.1.1 文件结构 306

23.1.2 可空性 309

23.1.3 分配和初始化 310

23.2 桥接 311

23.2.1 模块桥接 311

23.2.2 类型桥接 311

23.3 把Swift集成进Objective-C

 应用中 313

23.3.1 下载起始项目 313

23.3.2 创建Swift类和桥接头文件 315

23.3.3 清理 318

23.3.4 向Swift公开Objective-C类 318

23.3.5 利用Swift扩展Objective-C类 318

23.3.6 更新故事板中的类 319

23.3.7 运行应用 320

23.4 小结 321

23.5 问与答 322

23.6 作业 322

第 24章 Swift中的函数式思考 324

24.1 什么是函数式编程 324

24.2 从函数的角度考虑问题 325

24.2.1 利用map执行变换 325

24.2.2 利用forEach进行迭代 327

24.2.3 过滤值 329

24.2.4 把函数链接在一起 330

24.2.5 合并对象 331

24.2.6 创建和重载运算符 333

24.3 小结 336

24.4 问与答 337

24.5 作业 337

详情

该书作为Swift的入门类图书,对Swift编程语言的概念、结构、语法、扩展、闭包、协议、泛型等均进行了讲解,而且通过真正可以运行的示例来帮助读者建立从理性到感性的映射,从而能够将更容易地入门Swift编程。

图书摘要

相关图书

相关文章

相关课程