渐进式编程课
Swift 目录
第 16 课2026.09.22

只有加载失败时记录错误消息,不必为其他状态写完整 switch。

第 16 课:用 if case 读取失败消息

  • 日期:2026-09-22
  • 课程序号:第 16 课
  • 知识点:if case 匹配枚举单一分支

用途或适用场景

只有加载失败时记录错误消息,不必为其他状态写完整 switch。

核心概念

if case .failed(let message) = state 只在 .failed 时进入分支,并绑定关联值;它不替代上一课需要覆盖全部状态的 switch。

最小代码或操作示例

swift
enum LoadState {
    case loading
    case ready(count: Int)
    case failed(message: String)
}
let state = LoadState.failed(message: "网络失败")
if case .failed(let message) = state {
    print(message)
}

3~5 分钟练习

把 state 改为 .ready(count: 3) 再运行。

参考答案

不输出消息,因为 .failed 模式没有匹配。

与上一课的联系

沿用第 15 课的 LoadState 与 .failed(message:);本课只在单分支场景使用 if case,不改上一课的穷尽描述函数;完成后下一课可给 .ready 的匹配再加数量条件。

时效校验

时效校验:2026-09-24(Swift 官方 The Swift Programming Language 当前 Enumerations 与 Control Flow;if case 未见废弃标记)。

官方参考