如果我有类似 aList[Option[A]]
并且想将其转换为 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
. 我尝试了几件事无济于事;有没有人有这样的工作?