如果我有像一个List[Option[A]]
,我想这个转换成List[A]
,标准的方法是使用flatMap
:是否有scala身份识别功能?
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}'一样。任何人都可以评论为什么它不是这样吗? – 2016-12-06 01:38:31