2

卡在这里,尝试将案例类元组列表转换为序列元组并多分配结果。

val items = repo.foo.list // gives me a List[(A,B)]

我可以像这样完成多项任务:

val(a,b) = (items.map(_._1).toSeq, items.map(_._2).toSeq)

但按照以下方式分步执行会更好:

val(a,b) = repo.foo.list.map{case(a,b) => (a,b)}
4

2 回答 2

6

我不确定我是否正确理解了这个问题。也许unzip适用于你想要的?

这是一些示例的链接:http: //daily-scala.blogspot.de/2010/03/unzip.html

于 2012-10-22T07:47:31.087 回答
0

对于更一般的情况,您可以查看product-collections。ACollSeqN既是aSeq[TupleN[A1..An]]又是aTupleN[Seq[A1..An]]

在您的示例中,您可以像这样提取 Seq:

items._1
items._2
...
于 2014-03-08T18:12:45.530 回答