如果我有像一個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