第 17 课2026.09.22
错误状态没有可读消息时,仍向用户展示明确文案。
第 17 课:空白错误消息使用默认文案
- 日期:2026-09-22
- 课程序号:第 17 课
- 知识点:
String.ifBlank
用途或适用场景
错误状态没有可读消息时,仍向用户展示明确文案。
核心概念
ifBlank { ... } 仅在字符串为空或全是空白字符时取备用文本;其他消息保持原样。
最小代码或操作示例
kotlin
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.ifBlank { "加载失败" }
}
fun main() = println(label(State.Error(" "))) // 加载失败3~5 分钟练习
把错误消息改成“网络失败”,观察输出。
参考答案
输出“网络失败”,没有使用默认文案。
与上一课的联系
沿用第 16 课的 State 三分支与 label;本课只在 Error 分支增加 ifBlank 兜住空白消息;完成后下一课可单独判断当前状态是否是错误以显示重试入口。
时效校验
时效校验:2026-09-24(Kotlin 2.4 标准库 ifBlank 与 sealed 官方文档;ifBlank 自 Kotlin 1.3 可用,data object 需 Kotlin 1.9+,未见废弃标记)。