我在 lambda 函数中有一些代码,如下所示:
{ y, m, d ->
// update time, but only if it has already been set
val oldTime = model.time
if (oldTime != null) {
model.time = Calendar.getInstance().apply {
time = oldTime
set(Calendar.YEAR, y)
set(Calendar.MONTH, m)
set(Calendar.DAY_OF_MONTH, d)
}.time
}
}
有没有办法使用 let/with/apply/run 函数和 null 安全运算符来缩短此代码(减少引用字段的次数model.time
,并在可能的情况下删除临时变量)?oldTime
不幸的是,放在model.time ?: return
开头不起作用,因为它在 lambda 函数中。