最佳答案
如果我有一个类似于 List[Option[A]]
的东西,我想把它转换成 List[A]
,标准的方法是使用 flatMap
:
scala> val l = List(Some("Hello"), None, Some("World"))
l: List[Option[java.lang.String]] = List(Some(Hello), None, Some(World))
scala> l.flatMap( o => o)
res0: List[java.lang.String] = List(Hello, World)
现在 o => o
只是一个身份函数,我认为应该有一些方法可以实现:
l.flatMap(Identity) //return a List[String]
然而,我不能让这个工作,因为你不能泛化一个 object
。我尝试了一些东西,但是没有用; 有人有这样的东西吗?