Groovy中each、find跳出循環


在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM