scala – 为什么不一些(List(1,2,3)).flatten compile?

Scala 2.9.1中,我能做到

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

但在Scala 2.10.0中,

> Some(List(1,3)).flatten
Cannot prove that Seq[Int] <:< Option[B]

我发现this关闭bug,但我不明白判决,或者为什么关闭.

(1)为什么这不适用于Scala 2.10(显然是设计?)

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

解决方法

flatten采用外容器的类型.您无法将List放入选项中,因此无效.相反,首先更改外部容器的类型,以便可以进行展平:

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

相关文章

共收录Twitter的14款开源软件,第1页Twitter的Emoji表情 Tw...
Java和Scala中关于==的区别Java:==比较两个变量本身的值,即...
本篇内容主要讲解“Scala怎么使用”,感兴趣的朋友不妨来看看...
这篇文章主要介绍“Scala是一种什么语言”,在日常操作中,相...
这篇文章主要介绍“Scala Trait怎么使用”,在日常操作中,相...
这篇文章主要介绍“Scala类型检查与模式匹配怎么使用”,在日...