scala - 如何将 Option[X] 的 Scala 集合转换为 X 的集合

标签 scala scala-collections scala-option

我开始探索 Scala,我感兴趣的事情之一是 Option 类型以及能够消除 null 相关错误的 promise .

但是,我无法弄清楚如何将 Option[String] 的列表(或其他集合)转换为 String 的集合>(显然过滤掉了任何 None 值)。

换句话说,我如何从中得到:

List[Option[Int]] = List(Some(1))

...对此:

List[Int] = List(1)

如果这对答案有任何影响,我正在使用 Scala 2.8。

最佳答案

val list1 = List(Some(1), None, Some(2))
val list2 = list1.flatten // will be: List(1,2)

关于scala - 如何将 Option[X] 的 Scala 集合转换为 X 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730842/

相关文章:

list - Scala将Collection转换为Key-key的最佳方法? (第二变种)

scala - Scala 的 Option 以何种方式折叠 catamorphism?

scala - 为什么 Option 需要在 for 循环中显式地使用 toList?

list - scala 返回第一个列表中的一些

scala - 图作为邻接表性能

java - 在 Scala 中获取 Json 值 scala.util.parsing.json.JSON

scala - 为什么是 List[T] 而不是 List[Int]? T是什么意思?

scala - "Deferred inline method ` 富 ` in trait ` 富 ` cannot be invoked": Pairs

可以扩展自身的 Scala 集合类?摘要序列困惑

Scala F 有界类型多态性