|
|
1
8
您可以抛出异常:
使用还可以使用“findall”或“grep”过滤出列表,然后使用“each”。
|
|
|
2
21
我经常忘记,groovy实现了一个“any”方法。
|
|
|
3
13
2013年5月12日重编。 回答被问到的问题。
你会的
“突破”
通过发布
如果运行此示例,您将看到它将打印1,然后打印3。
为什么?
为了理解为什么你不能突破
正如您所看到的,闭包基本上是一种可以传递的方法。就像Java一样,不能从方法调用或关闭中中断。
做什么而不是打破
在groovy中,应该使用高级抽象来表示代码,因为这样的原始循环不是惯用的。对于您给出的示例,我将考虑使用findall。例如:
我希望这能帮助你理解发生了什么。 回答隐含的问题。
你不能脱离
|
|
|
4
8
|
|
|
5
7
尝试使用 任何 而不是 每个
结果是: 1, 2, 3 |
|
|
6
3
还有另一种解决方案。尽管如此,像each/find/any这样的绝妙的东西还是很酷的:如果它不适合,就不要使用它。你还是可以用普通的旧的
尤其是,如果你也想离开这个方法。现在您可以随意使用Continue/Break/Return。生成的代码可能并不酷,但很容易理解。 |
|
|
7
2
这是为了支持约翰·瓦格纳莱特的回答。蒂格里兹的回答显然是错误的。通过执行他的第一个代码示例,或者从理论上阅读groovy文档,可以很容易地证明这一点。一 返回 从当前迭代返回值(或不带参数的空值),但不停止迭代。在一个闭包中,它的行为很像 持续 . 你将无法使用 注入 不理解这一点。 除了引发异常之外,无法“中断循环”。为此目的使用异常被认为是臭味。因此,正如wagenleiter所建议的,最佳实践是在启动之前过滤掉您想要迭代的元素。 每个 或者它的一个表亲。 |
|
|
8
2
只是用特殊的封闭
|
|
|
Aleks · JSR223预处理器。将数据从数组传递到请求后参数 2 年前 |
|
|
R_SS · 用于json键数组的groovy jsonBuilder 2 年前 |
|
|
manuel_b · Regex匹配器返回多个值 2 年前 |
|
|
user22946701 · 将列表中的每个元素封装为平面文件中的新行 2 年前 |
|
|
Vivek Sangode · micronaut-java中的多租户 2 年前 |
|
|
Mofis Khan · 在groovy脚本上调用shell命令 2 年前 |
|
|
Gaylord.P · 将配置与groovy连接 3 年前 |