list - 在 Scala 2.7 上收集方法

标签 list scala

我在找 collect scala 2.7 中的方法,但我似乎找不到适用的调用。是否有等同于 collect 的东西我可以在scala中使用吗?

明确地说,我希望从列表中过滤元素并将过滤后的元素映射到新类型。

最佳答案

您可以使用 flatMap (2.7 中的完整方法签名是 def flatMap[B](f : (A) => Iterable[B]) : List[B] )。它在 Iterable 上都声明和 Iterator (签名略有不同):

scala> val l = List("1", "Hello", "2")
l: List[java.lang.String] = List(1, Hello, 2)

scala> val ints = l.flatMap { s => try { Some(s.toInt) } catch { case _ => None } }
ints: List[Int] = List(1, 2)

在上面的例子中,我利用了显式转换 option2iterablePredef .它在 TraversableLike 上的 2.8 中声明:
def flatMap[B, That](f: A => Traversable[B])(implicit bf: CanBuildFrom[Repr, B, That]): That

关于list - 在 Scala 2.7 上收集方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1913467/

相关文章:

PHP "list"问题 : Why the result is in reverse order?

scala - 使用scala在play框架中生成验证码

scala - Akka Stream 连接到多个接收器

scala - Scala中,final val 和 val 之间的区别

java - 试图让 InetAddress.getLocalHost.getHostAddress (Java/Scala) 返回外部 IP

scala - 在Scala中,Any和Object有什么区别?

python - 替换字符串列表中的子字符串

python - 在 Python 中拒绝列表的快速方法

python - 如何在 Python 中为整个(或部分)列表分配一个值?

java - 用字符串数组填充列表