集合的Groovy映射方法


75

mapGroovy中有一种方法吗?我想对以下Scala代码段执行类似的操作:

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)

Answers:


107

groovy中有这样一种方法,称为collect,例如:

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
断言[1,2,3] .collect {it + 1} == [2,3,4]
sbglasius 2011年

76
非常流行的成语的非常奇怪的函数名称
ruX

17
如果您认为收集很奇怪,请等到遇到“注入”以进行缩小/折叠操作!
Καrτhικ

3
我怀疑collectinject从Ruby的Enumerable mixin中的那些名称中借用了这些方法。
罗伊·廷克

@RoyTinker,可能是正确的。Groovy从Ruby的函数名称(收集,注入)及其语法(定义,可选的括号,用于括号的括号)中获得了一些启发。
保罗·德雷珀
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.