我可以以某种方式组合布尔检查和null检查吗?我想知道这种kotlin方法是否可以进一步简化

时间:2019-07-16 11:48:44

标签: kotlin nullable simplify simplification

我是Kotlin的新手,我想知道可以简化以下方法的最佳方法。

如果金额是由X人支付的,那么我需要返回应付金额,否则我需要返回0。

付款 下面的代码中,该对象是可以为空的对象。它包含 retailAmount ,它也是可为空的对象。 retailAmount 包含 baseCharges ,它是Double。 (此外,如果 付款 retailAmount 为空,我需要返回0)

select a.id,
       coalesce(b.text, a.text) as text
from table_a a left join
     table_b b
     on a.id = b.id
order by a.id;

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

fun getChargesPayableByX(personX: String): Double = 
    areChargesPayableByX(personX).takeIf{it == true}?.let{ payments?.retailAmount?.baseCharges } ?: 0.0