W ramach początkujących warsztat Groovy, byliśmy iteracji na poniższej liście (fromJson.secrets):Groovy .each vs .collect
[[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:dlican someone help me to understand the difference between the 2 methods in rehstoR, url:AAA]]
Pierwotny plan był do korzystania .collect jednak wygląda na to, że użycie .each dało takie same wyniki (iterowane na liście ...).
pytania jest, może ktoś mi pomóc zrozumieć różnicę między metod w odniesieniu do mojego przypadku użycia iw ogóle
każda:
reversed_streets = fromJson.secrets.each {
it.street = it.street.reverse()
it
}
zbierać:
reversed_streets = fromJson.secrets.collect {
it.street = it.street.reverse()
it
}
A drugi wiersz w każdym z nich jest niepotrzebny, ponieważ wartość zwracana dla każdego zamknięcia nie jest brana pod uwagę w każdym razie – Vampire
@ Kliknięcie dzięki za odpowiedź! Więc nie byłoby możliwe wywołanie .each nad niezmienną sekwencją. Dobrze? – Vano
@Vano na pewno. ale jeśli jest naprawdę nietrwały, możesz nie być w stanie wyciągnąć tego 'it.x = somethingnew'. ale jest całkiem dobrze zrobić 'immutableList.each {println it}' np. – cfrick