渐进式编程课
Kotlin 目录
第 18 课2026.09.23

在上一课显示错误消息后,只为错误状态提供重试入口。

第 18 课:用 is 判断可重试错误状态

  • 日期:2026-09-23
  • 课程序号:第 18 课
  • 知识点:is 类型检查

用途或适用场景

在上一课显示错误消息后,只为错误状态提供重试入口。

核心概念

is State.Error 可检查密封状态的具体分支,并返回布尔值;这里不改变上一课穷尽 when 的文字映射。

最小代码或操作示例

kotlin
// 沿用第 16 课的 State 声明与 label 函数。
fun canRetry(state: State): Boolean = state is State.Error

fun main() {
    println(label(State.Error("网络失败"))) // 网络失败
    println(canRetry(State.Error("网络失败"))) // true
    println(canRetry(State.Loading)) // false
}

3~5 分钟练习

传入 State.Ready(3),判断是否可重试。

参考答案

canRetry(State.Ready(3)) 返回 false,成功状态不显示重试入口。

与上一课的联系

沿用第 17 课的三种 State 与带空白文案处理的 label;本课只新增 is 判断错误分支;完成后下一课可进一步限制无消息的错误状态不提供重试入口。

时效校验

时效校验:2026-09-24(Kotlin 当前 Type checks and casts 官方文档;已核对 is 对子类型的判断,未见废弃标记)。

官方参考