Basic 基础部分
📖 学习内容概览
欢迎来到 Swift 编程之旅的第一站!基础部分将带你掌握 Swift 的核心概念和编程范式。这些知识是后续高级主题和实战应用的基石。
🎯 你将学到什么
完成本部分学习后,你将能够:
- 理解 Swift 类型系统 - 结构体、类、枚举、协议的核心区别
- 掌握值类型与引用类型 - Swift 的默认值语义
- 使用协议面向编程 (POP) - Swift 最独特的设计理念
- 编写泛型代码 - 可复用的类型安全代码
- 理解错误处理 - do/catch/try 最佳实践
📚 基础部分导航
本部分涵盖以下 12 个章节:
| # | 章节 | 说明 | 难度 | 预计时间 |
|---|---|---|---|---|
| 1 | 变量与表达式 | let/var、类型推断、字符串插值 | 🟢 简单 | 30 分钟 |
| 2 | 基础数据类型 | Int、Double、Bool、String、集合类型、可选类型 | 🟢 简单 | 45 分钟 |
| 3 | 控制流 | if/else、switch/case、for-in、guard、while | 🟢 简单 | 30 分钟 |
| 4 | 函数 | 参数标签、默认值、可变参数、函数类型、嵌套函数 | 🟡 中等 | 45 分钟 |
| 5 | 枚举 | 定义、关联值、原始值、递归枚举 | 🟡 中等 | 45 分钟 |
| 6 | 结构体 | 定义、属性观察器、值类型语义、mutating | 🟡 中等 | 45 分钟 |
| 7 | 类与对象 | 继承、初始化、ARC、类型转换 | 🟡 中等 | 60 分钟 |
| 8 | 协议 | 定义、扩展、关联类型、POP 设计理念 | 🟡 中等 | 60 分钟 |
| 9 | 泛型 | 泛型函数、类型约束、where 子句 | 🟡 中等 | 45 分钟 |
| 10 | 错误处理 | do/catch/try、throws、defer、Result 类型 | 🟡 中等 | 45 分钟 |
| 11 | 闭包 | 闭包语法、捕获值、逃逸闭包、高阶函数 | 🟡 中等 | 45 分钟 |
| 12 | 并发编程 | async/await、Actor、Task、Sendable | 🔴 困难 | 60 分钟 |
总计: 12 章 | 总时间: 约 8 小时 15 分钟
🔗 前置要求
无需 Swift 基础! 本部分从零开始教学。
建议具备:
- 基本编程概念(变量、循环、函数)
- 任意编程语言经验(Python、JavaScript、Java、Rust 等)
- 如果你熟悉 Hello Rust 的教程风格,会发现结构一致
📈 学习路径
变量与表达式 → 基础数据类型 → 控制流 → 函数 → 枚举 → 结构体 → 类与对象 → 协议 → 泛型 → 错误处理 → 闭包 → 并发编程
🎓 Swift 核心特性速览
Swift 区别于其他编程语言的核心特性:
| 特性 | 说明 | 与 Rust 对比 |
|---|---|---|
| 默认不可变 (let) | 变量默认不可变,需要 var 才可变 | 与 Rust 一致 (let vs let mut) |
| 值类型优先 (struct) | 默认使用值类型,类用于特殊场景 | Rust 只有结构体,没有类 |
| 协议面向编程 (POP) | 用协议+扩展替代类继承 | Rust 的 trait 类似但无默认实现 |
| 可选类型 (Optional) | 用 ? 处理空值的类型安全机制 | Rust 的 Option<T> |
| async/await | 语言级并发支持 | Rust 异步基于 Future trait |
| ARC 内存管理 | 自动引用计数 | Rust 的所有权系统 |
✅ 学习检查点
完成本部分后,你应该能够:
-
使用
let和var正确声明变量 - 使用可选类型安全地处理空值
- 使用枚举+关联值建模多状态数据
- 在结构体和类之间做出正确选择
- 定义协议并使用扩展提供默认实现
- 编写泛型函数和泛型类型
- 使用 do/catch/try 处理错误
- 使用闭包编写函数式代码
- 使用 async/await 编写并发代码
- 理解 Sendable 和 Actor 隔离
🎓 实践项目
建议练习:
- 创建一个简单的命令行计算器(变量、函数、控制流)
- 实现一个联系人管理工具(结构体、类、集合类型)
- 编写一个异步网络数据获取程序(并发编程、错误处理)
➡️ 下一步
完成基础部分后,继续学习 高级进阶 部分,你将学习:
- JSON 处理(JSONSerialization、Codable、SwiftyJSON)
- 文件操作(FileManager、临时文件)
- 系统服务(网络可达性、系统配置)
- 异步编程(Task、SwiftNIO 集成)
- 环境配置(swift-dotenv)
准备好了吗?让我们开始 变量与表达式 的学习! 🚀