Если у меня есть что-то вроде 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
. Я пробовал несколько вещей безрезультатно; есть ли у кого-нибудь что-то подобное?