在Scala 2.9.1中,我可以做

> Some(List(1,2,3)).flatten
List(1,2,3)

但是在Scala 2.10.0中,
> Some(List(1,2,3)).flatten
Cannot prove that Seq[Int] <:< Option[B]

我发现this已关闭,但我不了解该裁决或为何将其关闭。

(1)为什么这在Scala 2.10中不起作用(显然是设计使然?)

(2)我的2.9代码的惯用2.10版本是什么?

最佳答案

flatten采用外部容器的类型。您无法将List放入Option,所以这是行不通的。相反,请首先更改外部容器的类型,以便可以展平:

Some(List(1,2,3)).toList.flatten

关于scala - 为什么Some(List(1,2,3))。flatten不能编译?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22204357/

10-11 09:26
查看更多