什么是 Scala 2.10 与 2.9 不兼容以及如何处理它们?
尤其是核心库,但流行库的任何问题都可能很有趣。
感谢官方文档的链接。
不确定是否存在错误,但是类型推断和存在类型存在问题,现已修复(但尚未发布修复,因此当前版本 2.10.0 中仍然存在该问题)
它是SI-5330。在问题的描述(以及各种评论)中,有一些代码示例用于在 scala 2.9 中编译,而现在无法在 2.10 中编译。
找到了其中的几个:
迁移到 Akka:
http://docs.scala-lang.org/overviews/core/actors-migration-guide.html
或者包括旧的。例如使用 Maven:
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-actors</artifactId>
<version>2.10.0</version>
</dependency>
不要从案例类继承。如果您使用案例类进行匹配,请使用提取器模式:
http://www.scala-lang.org/node/112
List
包括:-
, --
, first
, sort
...看:
http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.List
http://www.scala-lang.org/api/2.9.2/index.html#scala.collection.immutable.List
我认为总的来说它们不是源代码不兼容的。确实存在一些差异,特别是与存在和模式匹配相关的差异——一些是由于 2.10.0 上的新错误,一些是由于 2.9.2 上的旧错误已得到修复。
当然,很多不推荐使用的东西都被删除了,但这不言而喻。