用途:该技能用于 Kotlin 响应式编程,围绕 Kotlin Flow 提供知识整理,覆盖冷流与热流、StateFlow、SharedFlow、操作符、流合并与测试等主题。
主要能力:区分冷流与热流,冷流为每个收集者重新开始,热流用于共享状态,例如用 MutableStateFlow 保存状态并通过 asStateFlow 暴露只读 StateFlow。操作符方面涉及 debounce、filter、distinctUntilChanged、flatMapLatest、catch 等,可用于搜索输入等场景;合并方面使用 combine 将多个流组合为单一结果。测试方面使用 Turbine 配合 runTest,通过 test 块与 awaitItem、advanceUntilIdle 断言流的发射顺序与状态。
使用方式:以 Skill("kotlin-flow") 调用该技能。
适用场景:Kotlin 项目中处理异步数据流、UI 状态管理、搜索防抖与结果切换、多数据源合并,以及为 Flow 编写单元测试。
限制与排查:资料给出常见问题及处理方向,如流始终不发射需添加终端操作符(collect、first),UI 中出现过期数据需正确使用 stateIn 或 shareIn。其余细节暂未提供。