[英]Traversing a list passing a closure to process elements - groovy
以下片段中正确的方法是什么?
1) def list = ["a", "b", "c", "d"]
list.findAll({println(it)})
2) def list = ["a", "b", "c", "d"]
list.collect({println(it)})
3) def list = ["a", "b", "c", "d"]
list.grep({println(it)})
请指教。
如果您要做的只是打印元素,则应使用each
。
def list = ["a", "b", "c", "d"]
list.each { println(it) }
findAll
和grep
用于查找列表中的特定元素。 collect
用于根据给定列表中的元素构建新的集合。
因此,打印所有元素的正确方法是使用each
,这恰恰是您的示例。 当您不关心处理结果时,这也可能是您的选择。 如果只想处理列表的一部分,请使用findAll
或grep
,它们可以在运行闭包之前过滤列表。 这些以及collect
都返回一个新列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.