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)

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.