Kotlin:检查lambda内部的结果
我有lambda表达式:Kotlin:检查lambda内部的结果,kotlin,lambda,Kotlin,Lambda,我有lambda表达式: repository!!.getAllByDateForUser(userId, date) .map { ... } .flatMap { ... } 等等。我需要在执行第一行之后检查数据。例如,检查结果列表是否为空。如果为空,则返回其他对象或抛出异常。如果它不是空的,我将进一步运行表达式。但我想在表达式中检查它 请给出建议,如何操作。您可以使用还()对对象执行附加操作,同时返回对象本身: 由于也是()
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.flatMap { ... }
等等。我需要在执行第一行之后检查数据。例如,检查结果列表是否为空。如果为空,则返回其他对象或抛出异常。如果它不是空的,我将进一步运行表达式。但我想在表达式中检查它
请给出建议,如何操作。您可以使用还()
对对象执行附加操作,同时返回对象本身:
由于也是()
是一个内联函数,因此Kotlin允许您使用非本地返回从lambda中退出当前函数
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.also { list ->
if (list.isEmpty())
return xy // exit function (not only lambda)
}
.flatMap { ... }
当然,如果您喜欢这种样式,您可以在每次链接调用的一行上执行此操作:
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.also { if (it.isEmpty()) return xy }
.flatMap { ... }
您可以使用还()
对对象执行其他操作,同时返回对象本身:
由于也是()
是一个内联函数,因此Kotlin允许您使用非本地返回从lambda中退出当前函数
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.also { list ->
if (list.isEmpty())
return xy // exit function (not only lambda)
}
.flatMap { ... }
当然,如果您喜欢这种样式,您可以在每次链接调用的一行上执行此操作:
repository!!.getAllByDateForUser(userId, date)
.map { ... }
.also { if (it.isEmpty()) return xy }
.flatMap { ... }