我真的不确定如何命名标题,因此我将尽最大可能解释它:
val a = b ?: ({
val temp = c.evaluate()
store(temp)
temp // returns temp to the lambda, which will set `a` to `temp` if `b` is null
})()
1 :什么有效,我目前使用什么
这很好用,但是我理想地要做的只是使用代码块,而不是将lambda传递给函数(({})
),然后对其进行评估。在我的想象中,它看起来像这样:
val a = b ?: {
val temp = c.evaluate()
store(temp)
temp // returns temp to the lambda, which will set `a` to `temp` if `b` is null
}
2 :我想拥有的东西
以上内容无效有效。我实际上只是在寻找一种更好的方式来编写 1 。