本节摘要:Playgrounds 是苹果提供的交互式 Swift 练习环境:每敲完一行代码,右侧立刻显示这行的值,不用建工程、不用按运行。本节讲清它的解剖结构、创建方法、实时结果与速览功能,更重要的是划清边界——试验田适合练语法、验算法,不适合验证真实界面行为。第 2 章的全部 Swift 养分都将在这块田里先行验证。
上一节的大棚(Xcode 工程)是为"长成一棵完整的树"准备的,每次试一行语法都要整园重灌,太重了。Playgrounds 的定位完全不同:它是一块独立的试验田,左边写代码、右边看结果,写完一行自动执行一行。它不编译成 App,不进 App Store,甚至不保留界面状态——存在的意义就是让你敢乱写。
创建方法:Xcode 启动页选新建 Playground,模板选 Blank(空白),随便起个名字(比如 NutrientLab),存到你能找到的地方。打开后默认有两行代码与右侧的结果栏。整个界面由三部分组成:代码编辑区(左)、实时结果栏(右,每行代码的值直接跟在行尾)、底部调试控制台(需要时展开,相当于大棚里的调试区)。

光看解剖图不够,直接下地。这段代码是「阳台花园」的核心判断逻辑雏形——到了该浇水的日子吗:
// 养分试验:浇水判断的第一次试验 var wateringInterval = 3 // 龟背竹三天浇一次(可变:品种换了要改) var daysSinceLastWater = 2 // 距上次浇水过了两天 let shouldWater = daysSinceLastWater >= wateringInterval // 该浇了吗(结论不变,用 let) print("浇水间隔:\(wateringInterval) 天") print("已过:\(daysSinceLastWater) 天") print("该浇水了吗:\(shouldWater)") // 实时结果栏依次显示:3、2、false // 控制台输出: // 浇水间隔:3 天 // 已过:2 天 // 该浇水了吗:false
把 daysSinceLastWater 改成 4 再看:第三行结果栏翻成 true。不用任何运行按钮,改完的瞬间结果就变了——这就是"写一行,活一行"。再试一个展示速览威力的循环:
// 速览试验:模拟未来十天的浇水节奏 for day in 1...10 { let needsWater = (day % wateringInterval == 0) // 每逢间隔天数浇水 print("第 \(day) 天\(needsWater ? " 💧 浇水" : " · 休息")") } // 控制台输出(节选): // 第 1 天 · 休息 // 第 3 天 💧 浇水 // 第 6 天 💧 浇水 // 第 9 天 💧 浇水 // 点击行首圆圈可展开这十天 needsWater 的值变化序列,一眼看出节奏
初学者常把两处输出混为一谈。结果栏显示的是"这一行表达式的值",它随代码修改即时刷新,适合观察数据长什么样;print 输出进底部控制台,是"你主动播报的内容",适合验证代码路径与格式化文案。一段对照:
let potSizes = [12, 15, 18, 24] // 结果栏右边显示整个数组 let average = potSizes.reduce(0, +) / potSizes.count // 结果栏显示 17 print("平均盆径 \(average) 厘米") // 控制台输出,结果栏无值 // 结果栏适合"看数据",print 适合"看流程"——以后在工程里只剩 print 可用
养成一个动作:在田里写完逻辑,立刻把关键中间值各 print 一遍。搬到工程后这些 print 就是现成的断点候选位置,排错时你会感谢现在的自己。
背景:第 2 章会写一个"按品种给浇水建议"的函数,第一版逻辑有坑,直接写进工程里调试要反复重跑模拟器。操作:把逻辑先搬进 Playground,用三组典型输入跑一遍。结果:第二组输入时发现耐旱植物被建议天天浇水——原因是比较方向写反了。解读:试验田的价值在于把"业务逻辑错误"和"界面接线错误"分开——前者在田里秒级验证,后者才值得占用模拟器。变式:以后每学一个语法点,先在田里喂它三组极端输入(零、空、极大值),再搬进工程;第 6 章的病虫害手册会把"逻辑先田测、界面再棚测"列为标准流程。
Playgrounds 的执行模型是"从上到下持续求值",这与真实 App 的事件驱动模型不同,由此带来三条边界:
| 场景 | 用 Playground | 用工程 |
|---|---|---|
| 试一条语法、一个算法 | 是 | 否(太重) |
| 验证业务逻辑边界输入 | 是 | 配合单元测试 |
| 界面布局与交互 | 否 | 是 |
| 性能与内存 | 否 | 是(配仪器) |
还有一个进阶技巧:Playground 支持多页结构,侧边栏像笔记本一样翻页。把第 2 章的每个大知识点建成一页——声明一页、控制流一页、闭包一页——这本笔记会变成你私人的 Swift 手册,面试前或忘了语法时翻自己写过的例子,比搜来的答案记得牢。每页顶部写一句"这页验证什么",半年后回看还能秒懂。
最后提醒一句保存与同步:Playground 文件本质上是个文件夹包,放进网盘同步盘有时会出乱子,重要结论记得在工程里留一份对应代码。田是草稿纸,但好草稿也值得归档。
💡 关键直觉:把 Playground 当草稿纸,把工程当正式作业。草稿纸随便撕,所以你才敢在上面乱写——学语言最快的路径就是敢错。
田已开好,种子下地。下一章开始配养分——先从最小颗粒:变量、常量与类型。