𝔖 Scriptorium
✦   LIBER   ✦

📁

Swift进阶

✍ Scribed by Chris Eidhof; Ole Begemann; Airspeed Velocity


Publisher
电子工业出版社
Year
2017
Tongue
Chinese
Leaves
301
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


《Swift进阶》涵盖了关于Swift程序设计的进阶话题。如果你已经通读Apple 的《Swift编程指南》,并且想要深入探索关于这门语言的更多内容,那么这《Swift进阶》正适合你!

Swift非常适合用来进行系统编程,同时它也能被用于书写高层级的代码。我们在书中既会研究像泛型、协议这样的高层级抽象的内容,也会涉足像封装C 代码以及字符串内部实现这样的低层级话题。《Swift进阶》将帮助你进一步完善知识体系,带领你从Swift的入门或中级水平迈入Swift高级开发者的大门。

✦ Table of Contents


扉页
版权页
译者序
目录
第1章 介绍
1.1 本书所面向的读者
1.2 主题
1.3 术语
1.4 Swift 风格指南
第2章 内建集合类型
2.1 数组
数组和可变性
数组和可选值
数组变形
数组类型
2.2 字典
可变性
有用的字典扩展
Hashable 要求
2.3 Set
集合代数
索引集合和字符集合
在闭包中使用集合
2.4 Range
第3章 集合类型协议
3.1 序列
迭代器
无限序列
不稳定序列
序列和迭代器之间的关系
子序列
3.2 集合类型
为队列设计协议
队列的实现
遵守 Collection 协议
遵守 ExpressibleByArrayLiteral 协议
关联类型
3.3 索引
索引失效
索引步进
链表
3.4 切片
实现自定义切片
切片与原集合共享索引
通用的 PrefixIterator
3.5 专门的集合类型
前向索引
双向索引
随机存取索引
MutableCollection
RangeReplaceableCollection
3.6 总结
第4章 可选值
4.1 哨岗值
4.2 通过枚举解决魔法数的问题
4.3 可选值概览
if let
while let
双重可选值
if var and while var
解包后可选值的作用域
可选链
nil 合并运算符
可选值 map
可选值 flatMap
使用 flatMap 过滤 nil
可选值判等
switch-case 匹配可选值
可选值比较
4.4 强制解包的时机
改进强制解包的错误信息
在调试版本中进行断言
4.5 多灾多难的隐式可选值
隐式可选值行为
4.6 总结
第5章 结构体和类
5.1 值类型
5.2 可变性
5.3 结构体
5.4 写时复制
写时复制 (昂贵方式)
写时复制 (高效方式)
写时复制的陷阱
5.5 闭包和可变性
5.6 内存
weak 引用
unowned 引用
5.7 闭包和内存
结构体和类使用实践
5.8 闭包和内存
引用循环
捕获列表
5.9 总结
第6章 函数
6.1 函数的灵活性
函数作为数据
6.2 局部函数和变量捕获
6.3 函数作为代理
Foundation 框架的代理
结构体代理
使用函数,而非代理
6.4 inout 参数和可变方法
嵌套函数和 inout
& 不意味 inout 的情况
6.5 计算属性和下标
延迟存储属性
使用不同参数重载下标
下标进阶
6.6 自动闭包
@escaping 标注
6.7 总结
第7章 字符串
7.1 不再固定宽度
字位簇和标准等价
7.2 字符串和集合
字符串与切片
7.3 简单的正则表达式匹配器
7.4 ExpressibleByStringLiteral
7.5 String 的内部结构
Character 的内部组织结构
7.6 编码单元表示方式
7.7 CustomStringConvertible 和 CustomDebugStringConvertible
7.8 文本输出流
7.9 字符串性能
7.10 展望
第8章 错误处理
8.1 Result 类型
8.2 抛出和捕获
8.3 带有类型的错误
8.4 将错误桥接到 Objective-C
8.5 错误和函数参数
Rethrows
8.6 使用 defer 进行清理
8.7 错误和可选值
8.8 错误链
链结果
8.9 高阶函数和错误
8.10 总结
第9章 泛型
9.1 重载
自由函数的重载
运算符的重载
使用泛型约束进行重载
使用闭包对行为进行参数化
9.2 对集合采用泛型操作
二分查找
泛型二分查找
集合随机排列
SubSequence 和泛型算法
重写与优化
9.3 使用泛型进行代码设计
提取共通功能
创建泛型数据类型
9.4 泛型的工作方式
泛型特化
全模块优化
9.5 总结
第10章 协议
10.1 面向协议编程
协议扩展
在协议扩展中重写方法
10.2 协议的两种类型
类型抹消
10.3 带有 Self 的协议
10.4 协议内幕
性能影响
10.5 总结
第11章 互用性
11.1 实践:封装 CommonMark
封装 C 代码库
封装 cmark_node 类型
更安全的接口
11.2 低层级类型概览
11.3 函数指针


📜 SIMILAR VOLUMES


微积分进阶
✍ 楼红卫 📂 Library 📅 2009 🏛 科学出版社 🌐 Chinese

<p>《微积分进阶》是作者多年在复旦大学讲授“数学分析原理”课程的讲义基础上编写而成。《微积分进阶》共7章,内容包括:分析基础、实数系基本定理,极限与连续,微分,积分,级数,多元函数微积分,反常积分和含参变量积分。教材注重思想性,在内容上尽量做到融会贯通,突出理论的严密性,同时每章都精选了例题与习题。</p> <p>《微积分进阶》可以与通常的高等数学教材结合成为数学类专业的数学分析教材,也可以作为数学分析的复习用书。</p>

Python进阶
✍ it-ebooks 📂 Library 📅 2016 🏛 iBooker it-ebooks 🌐 Chinese
高等数学进阶
✍ 王学武 📂 Library 📅 2019 🏛 清华大学出版社 🌐 Chinese

本书覆盖了数一和数三考研大纲的高等数学部分的全部内容.全书共11章,每章首先列出必须牢记,理解的基本概念,需要掌握,运用的基本结论,以及本章涉及的基本方法.然后,分节解析基本概念;简述定理,性质等基本结论;通过考研题型,给出常规的,完备的解题基本方法,并用适当例题解读方法,总结规律,给出各类题型解题方法综述;最后配有与考研题型相似的,与考研难度一致的练习题.

Android进阶解密
✍ 刘望舒 📂 Library 📅 2018 🏛 电子工业出版社 🌐 Chinese

本书是一本Android进阶书籍,主要针对Android 8.0系统源码并结合应用开发相关知识进行介绍。本书共分为17章,从3个方面来组织内容。第一方面介绍Android应用开发所需要掌握的系统源码知识,第二方面介绍JNI、ClassLoader、Java虚拟机、DVM&ART虚拟机和Hook等技术,第三方面介绍热修复原理、插件化原理、绘制优化和内存优化等与应用开发相关的知识点。3个方面有所关联并形成一个知识体系,从而使Android开发者能通过阅读本书达到融会贯通的目的。本书适合有一定基础的Android应用开发工程师、Android系统开发工程师和对Android系统源码感兴趣的读者阅读。