首页 > 解决方案 > Kotlin 中的嵌套运行块

问题描述

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

示例代码:

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

标签: kotlin

解决方案


因为在该范围内有多个标签具有这样的名称run

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

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

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


推荐阅读