Groovy 中何时使用“each”以及何时使用“for”循环

aa8*_*a8y 4 groovy closures loops for-loop

Groovy 中什么时候使用each闭包以及什么时候使用for循环。两者实际上都做同样的事情。

groovy:000> a = [1, 2, 3, 4]
===> [1, 2, 3, 4]
groovy:000> a.each {
groovy:001> println it
groovy:002> }
1
2
3
4
===> [1, 2, 3, 4]
groovy:000> for (it in a) {
groovy:001> println it
groovy:002> }
1
2
3
4
===> null
Run Code Online (Sandbox Code Playgroud)

闭包each返回列表。所以我可能可以使用它代替for循环,但反之亦然,对吗?

Rob*_*kal 5

for 循环可能更快,内存效率更高,因为每个结构都是语法糖。但我无法想象它会真正产生影响的情况。

在我看来,唯一显着的区别是你不能在不抛出异常的情况下终止每个闭包。您可以使用break 来终止for 循环。

我确实认为每个结构读起来更惯用。