gpt4 book ai didi

Groovy .each 与 .collect

转载 作者:行者123 更新时间:2023-12-02 11:00:44 37 4
gpt4 key购买 nike

作为 Groovy 初学者研讨会的一部分,我们一直在迭代以下列表 (fromJson.secrets):

[[floors:10, street:emaseS, url:http://plywoodpeople.com/wp-content/uploads/2012/03/kermit_the_frog.jpg], [floors:2, street:emaseS, url:http://36.media.tumblr.com/tumblr_lp9bg9Lh2x1r0h9bqo1_500.jpg], [floors:2, street:yawdaorB, url:https://montclairdispatch.com/wp-content/uploads/2013/07/broadway1.jpg], [floors:5, street:emaseS, url:AAA], [floors:2, street:yawdaorB, url:AAA], [floors:6, street:albmaR aL, url:AAA], [floors:1, street:teertS llaW, url:AAA], [floors:6, street:daoR yebbA, url:AAA], [floors:3, street:teertS llaW, url:AAA], [floors:4, street:dlirehstoR, url:AAA]]

最初的计划是使用 .collect,但看起来使用 .each 产生了相同的结果(迭代列表......)。

问题是,有人可以帮助我理解针对我的用例的方法与一般方法之间的区别

每个:

reversed_streets = fromJson.secrets.each {
it.street = it.street.reverse()
it
}


收集:

reversed_streets = fromJson.secrets.collect {
it.street = it.street.reverse()
it
}

最佳答案

  • each 用于副作用(这是您的示例)并返回原始
  • collect 用于创建新的东西(例如,Java 或其他语言中的 eager map)

在您的示例中:each 返回each 的输入。你的代码在那里就地操作 it.street 。所以你拿回你的原始列表,其中每条街道都颠倒了。使用collect,您可以使用以下内容创建一个新列表被操纵的元素。所以表面上的结果是一样的,但区别在于您创建了一个新容器,但您的原始容器仍然被篡改与。

关于Groovy .each 与 .collect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481872/

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