在 Kotlin 中,是否有更“Kotlin”的方式来执行以下操作?
fun parse(inputSample: Sample): List<String> =
when {
inputSample.foo != null -> parse(inputSample.foo)
inputSample.bar != null -> parse(inputSample.bar)
else -> emptyList()
}
我怀疑使用
null
检查 when
可以在 Kotlin 中以不同的方式编写 最佳答案
您可以使用范围功能来减少“冗余”代码:
fun parse(inputSample: Sample): List<String> = inputSample.run {
when {
foo != null -> parse(foo)
bar != null -> parse(bar)
else -> emptyList()
}
}
或者结合 elvis 运算符(注意这里假设
foo
和 bar
是相同类型的):fun parse(inputSample : Sample) : List<String> = inputSample.run {
(foo ?: bar)?.let { parse(it) } ?: emptyList()
}
关于kotlin - 我可以将检查空值的时间更改为不同的方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58331835/