Kotlin中?.let优化:如何简洁选择变量字段的取值逻辑?
优化实现方案
针对你的需求,这里提供几种更简洁的Kotlin实现方式:
方式一:if表达式直接判断
这是最直观的写法,逻辑清晰且简洁:
fun getTargetValue(clazz: Clazz): String { return if (clazz.name != null) { clazz.value0 } else { clazz.value1 ?: clazz.value2 } }
方式二:结合Elvis操作符简化
可以把逻辑压缩成一行,可读性依然出色:
fun getTargetValue(clazz: Clazz): String = if (clazz.name != null) clazz.value0 else clazz.value1 ?: clazz.value2
方式三:when表达式(适配未来逻辑扩展)
如果后续可能增加更多判断分支,用when会更便于维护:
fun getTargetValue(clazz: Clazz): String = when { clazz.name != null -> clazz.value0 clazz.value1 != null -> clazz.value1 else -> clazz.value2 }
这些写法都比?.let结合run的方式更直接,逻辑一目了然,同时减少了不必要的函数嵌套。
内容的提问来源于stack exchange,提问作者Viktor Fridman
相关产品推荐
相关产品推荐

