我开始探索Scala,我所吸引的一件事就是Option能够消除null相关错误的类型和承诺.
但是,我还没有能够弄清楚如何将列表(或其他集合)Option[String]转换为集合String(显然过滤掉任何值None).
换句话说,我如何从中得到:
List[Option[Int]] = List(Some(1))
Run Code Online (Sandbox Code Playgroud)
......对此:
List[Int] = List(1)
Run Code Online (Sandbox Code Playgroud)
如果这对答案有任何影响,我正在使用Scala 2.8.
将列表转换为选项不为“无”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)
以最惯用的方式。