如何从 Scala 中的 Option 列表中收集非 None 值?

P S*_*ved 1 scala

将列表转换为选项不为“无”Option[T]的列表的最佳方法是什么?T例如我想从这里开始:

scala> val xs = Some(3) :: None :: Some(4) :: Some(5) :: None :: Nil
xs: List[Option[Int]] = List(Some(3), None, Some(4), Some(5), None)
Run Code Online (Sandbox Code Playgroud)

对此:

List[Int] = List(3, 4, 5)
Run Code Online (Sandbox Code Playgroud)

以最惯用的方式。

sin*_*spd 6

你可以这样做xs.flatten文档在这里

将此可遍历集合列表转换为由这些可遍历集合的元素形成的列表。

Option是一个可遍历类型,并且它是有偏差的,因此遍历数据结构将丢弃任何None

仅供参考,nullNone是非常不同的事情。你的标题不准确

Null、Nil 和 Nothing 之间有什么区别?