阶段复习:基础部分
📖 复习目标
恭喜完成基础部分 12 章的学习!本章帮助你巩固所有关键概念,为高级进阶做好准备。
✅ 自检清单
完成以下每项,全部打勾后即可进入高级部分:
变量与表达式
-
能用
let和var正确声明变量 - 理解 Swift 默认不可变的设计哲学
-
能使用字符串插值
\(...)构建动态文本
基础数据类型
- 能区分 Int/UInt 家族、Float/Double
- 能创建和操作 Array、Set、Dictionary
-
理解可选类型
?和可选绑定if let
控制流
- 能使用 if/else、switch/case 编写条件逻辑
- 理解 switch 的穷举性要求(不需要 default)
- 能使用 guard 进行早期退出
- 理解 for-in 遍历范围、数组、字典
函数
- 能定义带外部参数标签和内部参数的函数
- 理解默认参数值、可变参数、inout 参数
- 能将函数作为参数和返回值
枚举
- 能用 enum 定义多种状态
- 理解关联值(associated values)和原始值(raw values)
- 能使用 switch 模式匹配枚举
结构体
- 能定义结构体并理解值类型语义
- 理解属性观察器(willSet/didSet)
- 知道 mutating 方法的用途
类与对象
- 能定义类、实现继承
- 理解引用类型 vs 值类型的区别
- 理解 ARC(自动引用计数)和循环引用问题
协议
- 能定义协议并让类型实现协议
- 理解协议扩展的默认实现
- 理解 Swift 的"协议面向编程"(POP)设计理念
泛型
- 能编写泛型函数和泛型类型
- 理解类型约束和 where 子句
- 知道何时使用泛型 vs 协议
错误处理
- 能使用 do/catch/try 处理错误
- 理解 throws、try?、try! 的区别
- 知道 defer 块的执行时机
- 理解 Result 类型
闭包
-
能用
{}语法定义闭包 - 理解尾随闭包语法
- 理解逃逸闭包 (@escaping)和非逃逸闭包的区别
并发编程
- 能使用 async/await 编写异步代码
- 理解 Actor 和 @MainActor 的隔离机制
- 理解 Sendable 协议的作用(Swift 6.0 Strict Concurrency)
- 能使用 Task 和 TaskGroup 编写并发代码
🧪 综合练习
练习 1:通讯录管理
使用结构体、枚举、可选类型和数组,实现一个简易通讯录:
- 联系人包含姓名、电话(可选)、邮箱(可选)
- 支持添加、删除、查找联系人
- 使用枚举区分联系方式(电话/邮箱/地址)
练习 2:异步数据获取
使用 async/await 和错误处理,模拟网络请求:
- 定义错误类型(网络错误、解析错误、超时)
- 使用 Result 类型或 throws 处理结果
- 使用 Task 并发获取多条数据
➡️ 下一步
基础部分完成后,继续学习:
你已经掌握了 Swift 的核心语法!继续前进! 🚀