我有一个列表,想要使用它来生成三个列表。我可以使用两个过滤器应用程序:
val z_out = zs.filter(p1)
val z_in = zs.filter(p2)
val z_split = zs.diff(z_out union z_in)
我可以通过一次遍历列表来执行此操作吗?如:
val (z_out, z_in, z_split) = zs.foldLeft(...)
答案 0 :(得分:1)
只要折叠的结果是一个元组,你就可以:
scala> val (a,b,c) = Nil.foldLeft((1,2,3))((x,y) => x)
a: Int = 1
b: Int = 2
c: Int = 3