第 16 课2026.09.21
让加载失败也有明确文字。
第 16 课:sealed状态加入错误分支
- 日期:2026-09-21
- 课程序号:第 16 课
- 知识点:sealed状态加入错误分支
用途或适用场景
让加载失败也有明确文字。
核心概念
在同一 sealed interface 增加 Error 数据类,并让 when 覆盖全部分支。
最小代码或操作示例
text
sealed interface State {
data object Loading : State
data class Ready(val count: Int) : State
data class Error(val message: String) : State
}
fun label(state: State) = when (state) {
State.Loading -> "加载中"
is State.Ready -> "共 ${state.count} 节"
is State.Error -> state.message
}3~5 分钟练习
传入 State.Error("网络失败")。
参考答案
label 返回“网络失败”。
与上一课的联系
沿用第 15 课的 State.Loading、State.Ready 与 label 函数;本课只新增携带消息的 State.Error 分支;完成练习后下一课可为错误消息为空的情况提供默认文案。
时效校验
时效校验:2026-09-24(当前 Kotlin 2.4.20;data object 自 Kotlin 1.9 起稳定,密封层次与穷尽 when 未见废弃标记;本机 Kotlin 2.4.0 编译运行通过)。