【发布时间】:2010-12-20 07:54:28
【问题描述】:
如果我有类似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,因此我无法使其正常工作。我尝试了几件事无济于事;有没有人有这样的工作?
【问题讨论】:
-
我认为
{_}应该等同于{x => x},就像{_ + 3}等同于{x => x+3}。谁能评论为什么不是这样?
标签: scala functional-programming scala-option