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.