渐进式编程课
Kotlin 目录
第 14 课2026.09.17

让 sealed class 的不同状态携带各自需要的数据。

第 14 课:sealed状态携带数据

  • 日期:2026-09-17
  • 课程序号:第 14 课
  • 知识点:sealed状态携带数据

用途

让 sealed class 的不同状态携带各自需要的数据。

核心概念

每个子类型只暴露该状态有效的数据,when 仍可穷尽处理。

最小代码或操作示例

text
sealed class UiState {
  data object Loading : UiState()
  data class Ready(val count: Int) : UiState()
}

3~5 分钟练习

创建一个 UiState 类型变量,值为 UiState.Ready(3)。

参考答案

val state: UiState = UiState.Ready(3)。

与上一课的联系

继承上一课的穷尽 when;本课只让状态携带数据;下一课可在 Ready 分支读取 count。

时效校验

时效校验:2026-09-21(当前 Kotlin 2.4.20;data object 自 Kotlin 1.9 起稳定,未见本课方案的废弃标记)。

官方参考