【问题标题】:Traversing a list passing a closure to process elements - groovy遍历将闭包传递给流程元素的列表 - groovy
【发布时间】:2016-04-11 23:44:56
【问题描述】:

下面的 sn-ps 哪个是正确的方法?

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)})

请指教。

【问题讨论】:

    标签: groovy closures


    【解决方案1】:

    如果你只是打印元素,你应该使用each

    def list = ["a", "b", "c", "d"]
    list.each { println(it) }
    

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

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

    【讨论】:

    • 感谢您的快速回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2018-05-12
    • 2023-01-30
    • 2018-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多