Kotlin如何合并可空key、可空条目校验中的两处fallbackLogic调用
问题解答
完全可以合并两处fallbackLogic()调用,两种符合Kotlin语法习惯的实现方案如下,和原有逻辑完全等价:
方案1:空安全链式调用(最简洁)
利用Kotlin空安全调用特性串联逻辑,任意一环为空就触发降级:
fun getEntry(key: String?) { key?.let { Registry.retrieve(it) }?.doStuff() ?: fallbackLogic() }
方案2:显式判断(可读性更强)
如果业务逻辑后续有扩展需求,推荐用显式分支的写法,后续修改更方便:
fun getEntry(key: String?) { val targetEntry = key?.let { Registry.retrieve(it) } if (targetEntry != null) { targetEntry.doStuff() } else { fallbackLogic() } }
两种方案都消除了重复的降级逻辑调用,代码更简洁易维护。
内容的提问来源于stack exchange,提问作者Arrow Cen
相关产品推荐
相关产品推荐

