【发布时间】:2012-12-14 13:20:40
【问题描述】:
在 Scala 中我可以这样写:
val a = List(1, 2, 3)
val b = List(4, 5)
println(a zip b)
这将产生List((1,4), (2,5)) 作为输出。
现在我在 Groovy 中有两个集合,并希望以类似的方式压缩它们。最简单的方法是什么?
【问题讨论】:
在 Scala 中我可以这样写:
val a = List(1, 2, 3)
val b = List(4, 5)
println(a zip b)
这将产生List((1,4), (2,5)) 作为输出。
现在我在 Groovy 中有两个集合,并希望以类似的方式压缩它们。最简单的方法是什么?
【问题讨论】:
Groovy 等效于 Scala 的 zip 是 List#transpose,可以在列表列表上调用:
assert [[1, 2, 3], [4, 5]].transpose() == [[1, 4], [2, 5]]
【讨论】:
zip 一样)。
filter叫select,而Groovy的findAll... Ruby都没有findAll Groovy 也没有 select
select,但没有 findAll,就像 Ruby,所以看起来是 Groovy 不合时宜(otoh SmallTalk like Groovy没有zip)