能力缺口:为什么你写 Swift 总觉得别扭
很多转岗或从 Objective-C 迁移过来的开发者,写 Swift 时常犯一种毛病:用旧语言的思维套新语法。变量随便声明,可选值不加判空就强解包,遇到闭包逃逸和循环引用全靠猜,结构体和类的选择全凭手感。这门基于早期发布版本整理的入门资料,解决的就是这种“语法能跑但逻辑带坑”的底子问题。它不讲花哨的架构,只盯着语言初代最核心的设计立意:类型安全、值类型与引用类型的严格分野、以及函数作为一等公民的用法。如果你现在看 Swift 代码还对 Optional 的问号和感叹号犯怵,或者搞不清什么时候该用 struct 什么时候该用 class,说明基础底盘有漏洞,这部分内容就是用来补这个缺口的。
学习路径与练习配合:别跳着看,按顺序敲
这套资料适合有一点编程基础但从未接触过这门语言的人,不建议完全零基础直接硬啃。建议先看前三块关于变量、控制流和类的基础内容,把类型推断和初始化的规矩吃透。第四块关于结构体、枚举和泛型的部分是重中之重,这是该语言区别于其他主流语言的核心特征,必须手敲代码理解值语义。最后的补丁内容是对前面语法的修正和补充,别当成可有可无的边角料,早期版本的一些设计后来做了调整,看补丁能帮你理解语言演进的思路。资料包里的每一节都有对应的代码示例,正确的用法是:看懂一段,关掉视频,自己默写一遍逻辑,跑通了再去对下一节。不要只看不练,语法课没有配套的敲击记忆,看完准忘。
学完能独立回答的三个问题
- 遇到可能为空的数据流,你能不借助强制解包,安全地拆解并传递可选值吗?能不能用元组让函数返回多个结果且代码可读?
- 设计一个数据模型时,你能准确说出为什么用结构体而不是类,或者反过来吗?常量属性在初始化的哪个阶段必须被赋值?
- 给定一个集合,你能用闭包写出自定义的排序和过滤逻辑,并且清楚闭包捕获上下文变量时可能带来的内存隐患吗?
如果学完这几块,你能不查文档独立写出上述逻辑,并且心里清楚每一行代码背后的类型推导过程,这门课的基础补齐目的就达到了。别急着去搞界面框架,语法立意没吃透,写上层业务只会满地是坑。
课程目录
1 A001.01 变量 / 字符串 / 集合 / 循环语句 (26:03) 2 A001.02 可能值 / 条件语句 / 方法 / 元组 / 闭包 (28:19) 3 A001.03 类 / 继承 / 初始化 / 属性 / 方法 (30:55) 4 A001.04 结构体 / 常量与变量 / 枚举 / 扩展 / 泛型 (42:15) 5 A001.Patch 补丁 (17:30)





