繁体   English   中英

遍历将闭包传递给过程元素的列表-Groovy

[英]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) }

findAllgrep用于查找列表中的特定元素。 collect用于根据给定列表中的元素构建新的集合。

因此,打印所有元素的正确方法是使用each ,这恰恰是您的示例。 当您不关心处理结果时,这也可能是您的选择。 如果只想处理列表的一部分,请使用findAllgrep ,它们可以在运行闭包之前过滤列表。 这些以及collect都返回一个新列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM