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