Kotlin 中的嵌套运行块

Ama*_*eep 2 kotlin

我遇到了嵌套运行块的情况。我想this从内部运行块访问外部运行块。我按照 IntelliJ 提示尝试了这个,但在(this@run as String).equals(""). 有没有办法实现这一目标?

示例代码:

fun main(args: Array<String>) {
    "".run  {
        1.0.run {
            (this@run as String).equals("")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

nhp*_*nhp 5

因为run在那个范围内有不止一个具有这样名称的标签。

为了访问外部运行块,只需简单地将其标记为您想要的任何内容。例如,run1@run2@

fun main(args: Array<String>) {
    "".run run1@ {
        1.0.run run2@ {
            (this@run1 as String).equals("")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,在 Kotlin 中,equals("")可以替换为== ""