Is there any difference between flatten and flatMap(identity)?
问题 scala> List(List(1), List(2), List(3), List(4)) res18: List[List[Int]] = List(List(1), List(2), List(3), List(4)) scala> res18.flatten res19: List[Int] = List(1, 2, 3, 4) scala> res18.flatMap(identity) res20: List[Int] = List(1, 2, 3, 4) Is there any difference between these two functions? When is it appropriate to use one over the other? Are there any tradeoffs? 回答1: You can view flatMap(identity) as map(identity).flatten . (Of course it is not implemented that way, since it would take two