从每个封闭的groovy休息

从每个封闭的groovy休息,第1张

概述是否有可能从每个Closure的Groovy“break”? 或者我应该使用经典的循环? 不,你不能中止一个“每个”,而不抛出异常。如果想要在特定条件下中止中断,您可能需要经典循环。 或者,您可以使用“find”闭包,而不是每个,并返回true,当你会做一个休息。 此示例将在处理完整列表之前中止: def a = [1, 2, 3, 4, 5, 6, 7]a.find { if (i 是否有可能从每个Closure的Groovy“break”?

或者我应该使用经典的循环?

解决方法 不,你不能中止一个“每个”,而不抛出异常。如果想要在特定条件下中止中断,您可能需要经典循环。

或者,您可以使用“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休息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1254040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存