Kotlin:如何从范围中返回一些价值?

在斯卡拉我可以写这样的东西:

val something = { val temp1 = ... val temp2 = ... temp1 + temp2 } 

据我所知在Kotlin中做同样的最好的方法是:

 val something = { val temp1 = ... val temp2 = ... temp1 + temp2 }() 

实际上它是一个类型为Unit – > Int的lambda,立即被调用。 我不知道这个代码可以改进吗? 也许有一个内置函数允许我写val = block {…}或者类似的东西?

你可以使用函数run ,如:

 val something = run { val temp1 = ... val temp2 = ... temp1 + temp2 }