Groovy Map Methode der Sammlungen

74

Gibt es eine mapMethode in Groovy? Ich möchte so etwas wie mit dem folgenden Scala-Snippet machen:

scala> val l = List(1, 2, 3)
l: List[Int] = List(1, 2, 3)

scala> l.map(_ + 1)
res0: List[Int] = List(2, 3, 4)
Deamon
quelle

Antworten:

105

Es gibt eine solche Methode in Groovy, sie heißt collectzum Beispiel:

assert [1, 2, 3].collect { it * 2 } == [2, 4, 6]

http://docs.groovy-lang.org/next/html/documentation/working-with-collections.html#_iterating_on_a_list

IttayD
quelle
13
behaupten [1,2,3] .collect {it + 1} == [2,3,4]
sbglasius
75
Ziemlich seltsamer Funktionsname für sehr beliebte Redewendung
ruX
17
Wenn Sie der Meinung sind, dass das Sammeln seltsam ist, warten Sie, bis Sie auf "Injizieren" stoßen, um den Vorgang zum Reduzieren / Falten durchzuführen!
Καrτhικ
3
Ich vermute collectund bin injectvon Methoden mit diesen Namen in Ruby's Enumerable Mixin entlehnt.
Roy Tinker
@ RoyTinker, ist wahrscheinlich richtig. Groovy lässt sich von Rubys Funktionsnamen (Sammeln, Injizieren) und seiner Syntax (Def, optionale Parens, Klammern für Verschlüsse) inspirieren.
Paul Draper