卡在这里,尝试将案例类元组列表转换为序列元组并多分配结果。
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)}
我不确定我是否正确理解了这个问题。也许unzip
适用于你想要的?
这是一些示例的链接:http: //daily-scala.blogspot.de/2010/03/unzip.html
对于更一般的情况,您可以查看product-collections。ACollSeqN
既是aSeq[TupleN[A1..An]]
又是aTupleN[Seq[A1..An]]
在您的示例中,您可以像这样提取 Seq:
items._1
items._2
...