哪个最好:collection.each或者每个?

时间:2016-02-29 14:56:59

标签: groovy

建议使用这两种横向列表中的哪种方式:

List list = [1, 2, 3]
for (num in list) { 
    // Do something
}

{% extends admin.getTemplate('base_list_field') %}

{% block field %}
    {{ value|length }}
{% endblock %}

这些是否会对性能产生任何影响?我认为,至少在可读性方面,它们都是相同的。

2 个答案:

答案 0 :(得分:3)

这取决于你在代码块内做了什么。您可能希望利用闭包的委托,或者您可能想要在不同的上下文中重用一个闭包,这将是使用#ifndef #define #endif的参数。如果这些都不适用,那么each循环可能更有意义并且会更好地执行。

答案 1 :(得分:-1)

从使用POV来看,它们之间的主要区别在于你如何异常终止循环。

for-each这是直截了当的:

for (num in list) { 
   if( someCond ) break
}

而使用each则必须抛出异常:

list.each{ 
   if( someCond ) throw new Exception( "" )
}

这不太好。