对groovy闭包外部变量的访问

对groovy闭包外部变量的访问,groovy,closures,Groovy,Closures,我在一个eachLine闭包中逐行处理一个日志文件,需要记住上一次迭代的值。问题是循环内的“currentCampaign”变量的范围明显不同于循环外的变量,因此在每次迭代之间不会记住它。(基本上,一行将有活动id,然后我向前扫描包含“redirectLink”的下一个类似实例。我需要记住文件中最后一个活动id是什么) 你试过一个更简单的例子吗?至少在groovy 1.8.0中,currentCampaign的范围应该扩展到整个示例中 def last = 0 [5, 3, 9].each {

我在一个eachLine闭包中逐行处理一个日志文件,需要记住上一次迭代的值。问题是循环内的“currentCampaign”变量的范围明显不同于循环外的变量,因此在每次迭代之间不会记住它。(基本上,一行将有活动id,然后我向前扫描包含“redirectLink”的下一个类似实例。我需要记住文件中最后一个活动id是什么)


你试过一个更简单的例子吗?至少在groovy 1.8.0中,currentCampaign的范围应该扩展到整个示例中

def last = 0
[5, 3, 9].each {
    def result = last + it
    last = it
    result
}
println last // prints 9
def last = 0
[5, 3, 9].each {
    def result = last + it
    last = it
    result
}
println last // prints 9