我很好奇 for..in
应该优先于 .each
出于性能原因。
最佳答案
For .. in
是标准语言流控制的一部分。
而是 each
调用一个闭包所以有额外的开销。.each {...}
是语法糖等价于方法调用.each({...})
此外,由于它是一个闭包,在 each
不能使用的代码块 break
和 continue
语句来控制循环。
http://kunaldabir.blogspot.it/2011/07/groovy-performance-iterating-with.html
更新了基准 Java 1.8.0_45 Groovy 2.4.3:
这是另一个具有 100000 次迭代的基准测试:
lines = (1..100000)
// with list.each {}
start = System.nanoTime()
lines.each { line->
line++;
}
println System.nanoTime() - start
// with loop over list
start = System.nanoTime()
for (line in lines){
line++;
}
println System.nanoTime() - start
结果:
关于Groovy:for..in 比 .each 快得多吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30661993/