Groovy集合的map方法

105

Groovy 中是否有 map 方法?我想做类似于以下 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)
1个回答

153

13
断言 [1,2,3].collect {it+1} == [2,3,4]。该语句的意思是,对列表 [1, 2, 3] 中的每个元素加一后,得到的结果应该与列表 [2, 3, 4] 相等。 - sbglasius
95
非常流行的习语却有着相当奇怪的函数名称。 - ruX
22
如果你觉得 collect(收集)很奇怪,那么等你遇到 reduce/fold 操作中的“inject”时就更惊讶了! - Καrτhικ
7
我猜想 collectinject 这两个词语是从 Ruby 的 Enumerable mixin 中的同名方法借鉴而来的。 - Roy Tinker
1
@RoyTinker 可能是正确的。Groovy 从 Ruby 的函数名称(collect,inject)和其语法(def,可选括号,用于闭包的大括号)中汲取了一些灵感。 - Paul Draper
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接