因此,我有一个简单的集合,说:
val a = List(1, 2, 3, 4)
我想将其映射到一个元组列表,然后对其进行过滤,然后再对其进行映射,因此将类似于:
a.map(x => (x, x * x)).filter(tup => tup._2 < 10).map(tup => tup._1 + tup._2)
除了不使用
tup
和tup._1
之外,我想使用number
和square
这样的变量名,最好在arguments部分中使用。可能吗?我该如何实现?
最佳答案
考虑使用部分函数和收集函数:
scala> val a = List(1, 2, 3, 4)
a: List[Int] = List(1, 2, 3, 4)
scala> a.map(x => (x, x * x)) collect {
| case (number, square) if square < 10 =>
| number + square
| }
res0: List[Int] = List(2, 6, 12)
在这种情况下收集就像 map 和过滤器的组合一样
关于function - 如何在Scala中链接使用过滤器生成元组的 map ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19457214/