作者:手机用户2502899267 | 来源:互联网 | 2022-12-10 13:17
在Java中,可以使用花括号来描述具有自己范围的代码块:
void f() {
{
int x = 1
// do something with x
}
// x not visible here anymore
}
这怎么在Kotlin完成?
1> Moira..:
您可以run
为此目的使用:
inline fun run(block: () -> R): R
(source)
调用指定的功能块并返回其结果.
kotlin.run
fun f() {
run {
val x = 1
// do something with x
}
// x not visible here anymore
}
这是一个内联函数(就像Kotlin中的许多其他类似语言构造的函数一样),因此在性能方面它等同于Java代码.
{}
不起作用,因为它创建一个lambda(从未实际调用过,所以它什么都不做).您可以{ foo }()
使用创建lambda的开销立即调用它(),或者创建一个为您执行此操作的内联函数 - 这正是run
它的作用.