如果我有类似a的东西List[Option[A]]并且想要将其转换为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}。谁能评论为什么不是这样?