在这里,尝试将一个case类元组的List转换为一个序列元组并多次分配结果。
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)}
答案 0 :(得分:6)
我不确定我是否正确理解了这个问题。也许unzip
适用于你想要的东西?
答案 1 :(得分:0)
对于更一般的情况,您可以查看product-collections。 CollSeqN
是Seq[TupleN[A1..An]]
和TupleN[Seq[A1..An]]
在您的示例中,您可以像这样提取Seq:
items._1
items._2
...