第 19 课2026.09.28
仅在加载成功且课程数量为正数时,生成界面提示文字。
第 19 课:把可用课程数量转换成提示
- 日期:2026-09-28
- 课程序号:第 19 课
- 知识点:
Optional.map(_:)
用途或适用场景
仅在加载成功且课程数量为正数时,生成界面提示文字。
核心概念
Optional.map 只在值非 nil 时执行转换闭包;nil 保持 nil,无需再次匹配 LoadState。
最小代码或操作示例
swift
// 沿用第 18 课的 LoadState 与 positiveCount(_:)。
func statusText(_ state: LoadState) -> String? {
positiveCount(state).map { "\($0) 节课程可用" }
}
print(statusText(.ready(count: 3)) as Any)
print(statusText(.loading) as Any)3~5 分钟练习
传入 .ready(count: 0) 与 .failed(message: "网络错误"),观察闭包是否运行。
参考答案
两者的 positiveCount 都是 nil,结果也是 nil,不会生成“0 节课程可用”或错误提示。
与上一课的联系
沿用第 18 课 guard case 提取出的 Int? 正数数量;本课只用 Optional.map 转成 String?;下一课可为无可用数量的状态提供独立显示文案。
时效校验
时效校验:2026-09-28(已打开 Apple Developer 当前 Swift Optional.map(_:) 官方 Markdown 参考;文档未标废弃,示例不依赖新增平台 API)。