gpt4 book ai didi

groovy - findResults 和 groovy 中的 collect 有什么区别?

转载 作者:行者123 更新时间:2023-12-05 01:40:01 26 4
gpt4 key购买 nike

这是使用collect的代码

​def lst = [1,2,3,4];      
def newlst = [];
newlst = lst.collect {element -> return element * element}
println(newlst);

这是使用 findResults 的代码

def lst2 = [1,2,3,4];      
def newlst2 = [];
newlst2 = lst2.findResults {element -> return element * element}
println(newlst2);

两者似乎都返回 [1, 4, 9, 16] 那么有什么区别呢?谢谢!

最佳答案

基本上区别在于它们如何处理 null

collect 当看到 null 时会收集它,而 findResults 不会选择它。

换句话说,当使用 collect 时,结果集合的大小与输入的大小相同。

当然你可以过滤掉结果,但这是一个额外的步骤

这是一个link以我在互联网上找到的例子为例

例子:

​def list = [1, 2, 3, 4]
println list.coll​​​​​​​​​​​​​​ect { it % 2 ? it : null}
// [1, null, 3, null]
println list.findResults { it % 2 ? it : null}​
// [1,3]

关于groovy - findResults 和 groovy 中的 collect 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57238029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com