function - 在 Scala 中,如何链接生成带有过滤器的元组的映射?

标签 function scala map

所以,我有一个简单的集合,比如说:

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,最好在参数部分。

这可能吗?我怎样才能做到这一点?

最佳答案

考虑使用部分函数和收集函数:

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/

相关文章:

c - C中的动态列表头疼,反向打印列表?为什么?

scala - 使用 spark cassandra 连接器更新 Cassandra 表

java - ConcurrentHashMap.put V.S. ConcurrentHashMap.replace

vim - 创建读取单个键的 vim 函数

android - 什么是 map 瓦片?

javascript - 调用带有多个闭包的 javascript 函数

R:有没有办法捕获所有函数参数值

C++ 具有不同返回类型的相同函数参数

scala - 如何让 sbt 使用 $SCALA_HOME 目录中的 scala 二进制文件?

scala - Play 框架 CORS header