具有可为空变量的布尔表达式

k88*_*k88 0 kotlin

我正在修改 Kotlin 并且我试图围绕可空变量在 Kotlin 中的工作方式进行思考。在这里,我有一段代码可以进行布尔检查,以查看车辆是否超载。该实现是处理可空变量的好方法还是有更优雅的方法?

class Route(var vehicle: Vehicle?, var  jobs: List<Job>?) {
    constructor()
    constructor(vehicle: Vehicle?)

    fun isOverCapacity() : Boolean {
        val vehicleCapacity = vehicle?.capacity
        if (vehicleCapacity != null){
            val totalDemand = jobs?.sumBy { job -> job.demand }
            if (totalDemand != null) {
                return totalDemand > vehicleCapacity
            } 
        }
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢!

IR4*_*R42 5

fun isOverCapacity(): Boolean {
    val vehicleCapacity = vehicle?.capacity ?: return false
    val totalDemand = jobs?.sumBy { job -> job.demand } ?: return false
    return totalDemand > vehicleCapacity
}
Run Code Online (Sandbox Code Playgroud)

?: 在 Kotlin 中做什么?(猫王接线员)