或者我应该使用经典的循环?
解决方法 不,你不能中止一个“每个”,而不抛出异常。如果想要在特定条件下中止中断,您可能需要经典循环。或者,您可以使用“find”闭包,而不是每个,并返回true,当你会做一个休息。
此示例将在处理完整列表之前中止:
def a = [1,2,3,4,5,6,7]a.find { if (it > 5) return true // break println it // do the stuff that you wanted to before break return false // keep looPing}
打印
12345
但不打印6或7。
使用接受闭包的自定义break行为编写自己的迭代器方法也很容易:
List.MetaClass.eachUntilGreaterThanFive = { closure -> for ( value in delegate ) { if ( value > 5 ) break closure(value) }}def a = [1,7]a.eachUntilGreaterThanFive { println it}
还打印:
12345总结
以上是内存溢出为你收集整理的从每个封闭的groovy休息全部内容,希望文章能够帮你解决从每个封闭的groovy休息所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)