fun foo(a: Int?, b: String?, c: Boolean?) : String? {
a ?: return null
b ?: return null
c ?: return null
return "Everything ok."
}
这种方法的优点是,根据哪个值为null,您可以得到不同的错误结果:
使用异常:
fun foo(a: Int?, b: String?, c: Boolean?) : String {
a ?: throw IllegalArgumentException("a is null")
b ?: throw IllegalArgumentException("b is null")
c ?: throw IllegalArgumentException("c is null")
return "Everything ok."
}
使用不同的返回值:
fun foo(a: Int?, b: String?, c: Boolean?) : Result {
a ?: return Result.ErrANull
b ?: return Result.ErrBNull
c ?: return Result.ErrCNull
return Result.OK("Everything ok.")
}
sealed class Result {
class OK(val s: String) : Result()
object ErrANull : Result()
object ErrBNull : Result()
object ErrCNull : Result()
}
2条答案
按热度按时间avwztpqn1#
以下是两种简洁的条件编写方法:
在上下文中,您可以这样使用它:
kninwzqo2#
您可以使用Elvis运算符
?:
,它允许在值为null(包括从函数返回)的情况下提供默认值。例如:
这种方法的优点是,根据哪个值为null,您可以得到不同的错误结果: