因此,我有一个简单的集合,说:

val a = List(1, 2, 3, 4)

我想将其映射到一个元组列表,然后对其进行过滤,然后再对其进行映射,因此将类似于:
a.map(x => (x, x * x)).filter(tup => tup._2 < 10).map(tup => tup._1 + tup._2)

除了不使用tuptup._1之外,我想使用numbersquare这样的变量名,最好在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/

10-10 22:43