如果我有一个像 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}
一样。有人可以评论一下为什么不是这样吗? - Randall Whitman