Wenn ich so etwas wie ein List[Option[A]]
haben und ich möchte diese in eine List[A]
konvertieren, ist der normale Weg flatMap
zu verwenden:Gibt es eine Scala-Identitätsfunktion?
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)
Jetzt o => o
ist nur eine Identitätsfunktion. Ich hätte gedacht, es würde irgendwie zu tun:
l.flatMap(Identity) //return a List[String]
Allerdings kann ich das nicht bekommen zu arbeiten, wie Sie keine object
generify können. Ich habe ein paar Dinge vergeblich versucht; Hat jemand so etwas zum arbeiten?
Ich würde denken, dass '{_}' gleichsetzen sollte '{x => x}' genau wie '{_ + 3}' entspricht '{x => x + 3}'. Kann jemand kommentieren, warum es nicht so ist? –