首页
作品
资讯
专题
果动
登录
注册
首页
作品
Swift 教程
Swift 教程
一零二四
Swift
39.2
万字
开始阅读
取消订阅
现在订阅
简介
中文版 Apple 官方 Swift 教程《The Swift Programming Language》
作者的话
本教程由SwiftGG翻译
目录
第一章:初见
1.1. 关于 Swift
1.2. 版本兼容性
1.3. Hello Swift
1.4. 简单值
1.5. 控制流
1.6. 函数和闭包
1.7. 对象和类
1.8. 枚举和结构体
1.9. 协议和扩展
1.10. 错误处理
1.11. 泛型
32. 前缀表达式
第二章:基础
2.1. 基础
2.2. 常量和变量
2.3. 注释
2.4. 分号
2.5. 整数
2.6. 浮点数
2.7. 类型安全和类型推断
2.8. 数值型字面量
2.9. 数值型类型转换
2.10. 类型别名
2.11. 布尔值
2.12. 元组
2.13. 可选类型
2.14. 错误处理
2.15. 断言和先决条件
第三章:基本运算符
3.1. 运算符
3.2. 术语
3.3. 赋值运算符
3.4. 算术运算符
3.5. 组合赋值运算符
3.6. 比较运算符(Comparison Operators)
3.7. 三元运算符(Ternary Conditional Operator)
3.8. 空合运算符(Nil Coalescing Operator)
3.9. 区间运算符(Range Operators)
3.10. 逻辑运算符(Logical Operators)
第四章:字符串和字符
4.1. 字符串
4.2. 字符串字面量
4.3. 初始化空字符串
4.4. 字符串可变性
4.5. 字符串是值类型
4.6. 使用字符
4.7. 连接字符串和字符
4.8. 字符串插值
4.9. Unicode
4.10. 计算字符数量
4.11. 访问和修改字符串
4.12. 子字符串
4.13. 比较字符串
4.14. 字符串的 Unicode 表示形式
第五章:集合类型
5.1. Swift 的集合类型
5.2. 集合的可变性
5.3. 数组(Array)
5.4. 集合(Sets)
5.5. 集合操作
5.6. 字典
第六章:控制流
6.1. For-In 循环
6.2. While 循环
6.3. 条件语句
6.4. 控制转移语句
6.5. 提前退出
6.6. 检测 API 可用性
第七章:函数
7.1. 函数的定义与调用
7.2. 函数参数与返回值
7.3. 函数参数标签和参数名称
7.4. 函数类型
7.5. 嵌套函数
第八章:闭包
8.1. 什么是闭包
8.2. 闭包表达式
8.3. 尾随闭包
8.4. 值捕获
8.5. 闭包是引用类型
8.6. 逃逸闭包
8.7. 自动闭包
第九章:枚举
9.1. 枚举语法
9.2. 使用 Switch 语句匹配枚举值
9.3. 枚举成员的遍历
9.4. 关联值
9.5. 原始值
9.6. 递归枚举
第十章:类和结构体
10.1. 结构体和类对比
10.2. 结构体和枚举是值类型
10.3. 类是引用类型
第十一章:属性
11.1. 存储属性
11.2. 计算属性
11.3. 属性观察器
11.4. 属性包装器
11.5. 全局变量和局部变量
11.6. 类型属性
第十二章:方法
12.1. 实例方法(Instance Methods)
12.2. 类型方法
第十三章:下标
13.1. 下标语法
13.2. 下标用法
13.3. 下标选项
13.4. 类型下标
第十四章:继承
14.1. 定义一个基类
14.2. 子类生成
14.3. 重写
14.4. 防止重写
第十五章:构造过程
15.1. 存储属性的初始赋值
15.2. 自定义构造过程
15.3. 默认构造器
15.4. 值类型的构造器代理
15.5. 类的继承和构造过程
15.6. 可失败构造器
15.7. 必要构造器
15.8. 通过闭包或函数设置属性的默认值
第十六章:析构过程
16.1. 析构过程原理
16.2. 析构器实践
第十七章:可选链
17.1. 使用可选链式调用代替强制解包
17.2. 为可选链式调用定义模型类
17.3. 通过可选链式调用访问属性
17.4. 通过可选链式调用来调用方法
17.5. 通过可选链式调用访问下标
17.6. 连接多层可选链式调用
17.7. 在方法的可选返回值上进行可选链式调用
第十八章:错误处理
18.1. 表示与抛出错误
18.2. 处理错误
18.3. 指定清理操作
第十九章:并发
19.1. 并发介绍
19.2. 定义和调用异步函数
19.3. 异步序列
19.4. 并行的调用异步方法
19.5. 任务和任务组
19.6. Actors
第二十章:类型转换
20.1. 为类型转换定义类层次
20.2. 检查类型
20.3. 向下转型
20.4. Any 和 AnyObject 的类型转换
第二十一章:嵌套类型
21.1. 嵌套类型实践
21.2. 引用嵌套类型
第二十二章:扩展
22.1. 介绍
22.2. 扩展的语法
22.3. 计算型属性
22.4. 构造器
22.5. 方法
22.6. 下标
22.7. 嵌套类型
第二十三章:协议
23.1. 协议语法
23.2. 属性要求
23.3. 方法要求
23.4. 异变方法要求
23.5. 构造器要求
23.6. 协议作为类型
23.7. 委托
23.8. 在扩展里添加协议遵循
23.9. 有条件地遵循协议
23.10. 在扩展里声明采纳协议
23.11. 使用合成实现来采纳协议
23.12. 协议类型的集合
23.13. 协议的继承
23.14. 类专属的协议
23.15. 协议合成
23.16. 检查协议一致性
23.17. 可选的协议要求
23.18. 协议扩展
第二十四章:泛型
24.1. 泛型解决的问题
24.2. 泛型函数
24.3. 类型参数
24.4. 命名类型参数
24.5. 泛型类型
24.6. 泛型扩展
24.7. 类型约束
24.8. 关联类型
24.9. 泛型 Where 语句
24.10. 具有泛型 Where 子句的扩展
24.11. 包含上下文关系的 where 分句
24.12. 具有泛型 Where 子句的关联类型
24.13. 泛型下标
第二十五章:不透明类型
25.1. 不透明类型解决的问题
25.2. 返回不透明类型
25.3. 不透明类型和协议类型的区别
第二十六章:自动引用计数
26.1. 自动引用计数的工作机制
26.2. 自动引用计数实践
26.3. 类实例之间的循环强引用
26.4. 解决实例之间的循环强引用
26.5. 闭包的循环强引用
26.6. 解决闭包的循环强引用
第二十七章:内存安全
27.1. 理解内存访问冲突
27.2. In-Out 参数的访问冲突
27.3. 方法里 self 的访问冲突
27.4. 属性的访问冲突
第二十八章:访问控制
28.1. 模块和源文件
28.2. 访问级别
28.3. 访问控制语法
28.4. 自定义类型
28.5. 子类
28.6. 常量、变量、属性、下标
28.7. 构造器
28.8. 协议
28.9. Extension
28.10. 泛型
28.11. 类型别名
第二十九章:高级运算符
29.1. 位运算符
29.2. 溢出运算符
29.3. 优先级和结合性
29.4. 运算符函数
29.5. 自定义运算符
29.6. 结果构造器
第三十章:词法结构
30.1. 空白与注释
30.2. 标识符
30.3. 关键字和标点符号
30.4. 字面量
30.5. 运算符
第三十一章:类型
31.1. 介绍
31.2. 类型标识符
31.3. 元组类型
31.4. 函数类型
31.5. 数组类型
31.6. 字典类型
31.7. 可选类型
31.8. 隐式解析可选类型
31.9. 协议合成类型
31.10. 不透明类型
31.11. 元类型
31.12. 任意类型
31.13. 自身类型
31.14. 类型继承子句
三十二章:表达式
32.1. 前缀表达式
32.2. 二元表达式
32.3. 基本表达式
特性
声明
模式