在groovy中使用break跳出each或者find的循环会会报错,为什么呢?groovy中each、find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究:

1、groovy each 中的return true 相当于Java中的continue , 但不完全是,看一下例子。

2、groovy find中的return true 相当于Java中的break,

 

each例子:
def a = [1, 2, 3, 4]
a.each {
if (it == 2)
return true // 满足条件本轮循环结束
 println it
}
println "-----------------------"
a.each {
if (it >= 2)
return true // 满足条件本轮循环结束
 println it
}

结果:

1
3
4
———————–
1

 

find例子:
def a = [1, 2, 3, 4]
a.find {
if (it == 2)
return true // break
 println it
}
println "-----------------------"
a.find {
if (it >= 2)
return true // break
 println it
}

结果:

1
———————–
1

版权声明:本文为jsersudo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/jsersudo/p/10342110.html