Groovy:如何访问内部变量?

Groovy:如何访问内部变量?,groovy,Groovy,我试图访问一个在循环中定义的变量。我如何访问它 fileContents.split('\n').each { if (it =~ /nodePort:/) { def splitted_string = it.split(':') String nodePort = (splitted_string[1].trim()) } } println nodePort 错误:groovy.lang.MissingPropertyException:没

我试图访问一个在循环中定义的变量。我如何访问它

fileContents.split('\n').each {
    if (it =~ /nodePort:/) {
        def splitted_string = it.split(':')
        String nodePort = (splitted_string[1].trim())
    }
}
println nodePort
错误:groovy.lang.MissingPropertyException:没有这样的属性:nodePort


如何访问变量nodePort?

您不能从外部作用域访问变量。但是,您可以将变量移动到外部范围

String nodePort
fileContents.split('\n').each {
    if (it =~ /nodePort:/) {
        nodePort = (splitted_string[1].trim())
    }
}
println nodePort
另一个选择是:

fileContents.split('\n').find { it =~ /nodePort:/ }?.tokenize(":")?.getAt(1)

什么是拆分的\u字符串?添加了拆分的\u字符串的代码。