2013-01-15 98 views
4

斯卡拉2.10与2.9不兼容问题以及如何处理它们?斯卡拉2.10与2.9不兼容

尤其是核心库,但流行库的任何问题可能都是有趣的。

赞赏官方文件的链接。

+3

说实话,不明白为什么它被关闭。在StackOverflow上有各种类似的问题(例如http://stackoverflow.com/questions/8313802/difference-in-flattening-an-optionlistint-in-2-9-1-and-2-10-nightly)。在一个地方列出这些问题将很有用。 – Jakozaur

回答

2

不知道虫子算,howerer有一个issue with type inference and existential types现在已被固定的(但修复尚未发布,所以这个问题仍然存在于当前版本2.10.0)

这是SI-5330。在这个问题的描述(以及各种评论)中,有一些代码在scala 2.9中编译,现在无法在2.10中编译。

1

发现一对夫妇的那些:

  • 默认的演员库是阿卡

迁移到阿卡:

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> 
  • 扩展case类导致compliation错误

不要从case类继承。匹配使用提取模式,如果你使用的情况下类:从List被拆除

http://www.scala-lang.org/node/112

  • 一些不赞成的方法,包括:---firstsort ...

见:

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

1

我认为它们大体上不是源代码不兼容的。存在一些差异,特别是与存在和模式匹配相关的问题 - 一些是由于2.10.0上的新错误引起的,一些是由于2.9.2上的旧错误得到修复。

当然,很多弃用的东西都被删除了,但这应该不用说了。