简单的说明性示例:
在集合上使用.each {}:
def adults = Person.findAllByAgeGreaterThan(18)
adults.each{adult ->
//perform action on adult
}
使用 for 迭代集合:
def adults = Person.findAllByAgeGreaterThan(18)
for(adult in adults){
//perform action on adult
}
答案 0 :(得分:3)
循环稍好一些:例如,它不必创建Closure
实例。详细信息取决于您的Groovy版本,编译器和JIT优化以及更多内容。如果您需要确定,请通过内存分析器运行代码。
但是由于我们在这里只谈了几十个字节,你不应该感到这种冲动"我需要修复这个代码"。这可能只是浪费时间(即修复它比放弃它更贵)。
2014年,the first goal for code is readability。
只有当性能非常糟糕并且测量时,分析器为什么它很糟糕,是时候修复代码了(即牺牲时间) ,可维护性和可读性以获得更好的性能。)