Kotlin 具有可空变量的布尔表达式
我正在对Kotlin进行修补,并试图了解可空变量在Kotlin中的工作方式。这里我有一段代码,它执行布尔检查,以查看车辆是否超载。实现是处理可空变量的好方法还是有更优雅的方法Kotlin 具有可空变量的布尔表达式,kotlin,Kotlin,我正在对Kotlin进行修补,并试图了解可空变量在Kotlin中的工作方式。这里我有一段代码,它执行布尔检查,以查看车辆是否超载。实现是处理可空变量的好方法还是有更优雅的方法 class路线(变量车辆:车辆?,变量作业:列表?){ 构造函数() 建造商(车辆:车辆?) fun isOverCapacity():布尔值{ val车辆容量=车辆?容量 if(车辆容量!=null){ val totalDemand=jobs?.sumBy{job->job.demand} 如果(总需求!=null){
class路线(变量车辆:车辆?,变量作业:列表?){
构造函数()
建造商(车辆:车辆?)
fun isOverCapacity():布尔值{
val车辆容量=车辆?容量
if(车辆容量!=null){
val totalDemand=jobs?.sumBy{job->job.demand}
如果(总需求!=null){
返回总需求>车辆容量
}
}
返回错误
}
}
非常感谢 通过使用kotlin std lib dsl函数运算符,如、 使用
?。
->如果对象/值不为null,则只调用下一个函数
- let->返回lambda表达式的结果
- 运行->返回lambda表达式作为接收方传递的结果
- 另外->执行操作并返回本身,与lambda的结果不同
- 应用->执行操作并返回本身,这与lambda将其作为接收器传递的结果不同
- 使用->返回lambda表达式的结果并关闭可关闭的资源
fun isOverCapacity():布尔值=
车辆?容量?让{车辆容量->
作业?.sumBy{job->job.demand}?.let{totalDemand->
总需求>车辆容量
}
}?:错
fun isOverCapacity(): Boolean {
val vehicleCapacity = vehicle?.capacity ?: return false
val totalDemand = jobs?.sumBy { job -> job.demand } ?: return false
return totalDemand > vehicleCapacity
}