2013-01-15 95 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上的舊錯誤得到修復。

當然,很多棄用的東西都被刪除了,但這應該不用說了。