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