所以,我有一个简单的集合,比如说:
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
,最好在参数部分。
这可能吗?我怎样才能做到这一点?
最佳答案
考虑使用部分函数和收集函数:
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)
在这种情况下收集就像映射和过滤器的组合
关于function - 在 Scala 中,如何链接生成带有过滤器的元组的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19457214/