我看到這個線程:從斯卡拉2.7.7移植新的Iterable {}代碼2.8
What are the biggest differences between Scala 2.8 and Scala 2.7?
這似乎掩蓋了一些變化,但首先編譯我已經打了似乎沒有問題有待提及。有什麼建議麼?
- 類型參數的種類(Iterable [Any] with(A with Int)=> Any)不符合類GenericCompanion中類型參數(類型CC)的預期種類。任何的類型參數都不匹配類型CC的預期參數:沒有類型參數,但類型CC有一個
- 對象創建不可能,因爲 方法迭代器在特徵IterableLike 的類型=>迭代[java.io.File的]是 未定義
- 對象創建不可能的,因爲在性狀 方法迭代IterableLike類型的 =>迭代[V]是沒有定義在性狀 IterableLike
- 覆蓋方法元素類型=> Iterator [java.io.File];方法 元素需要「覆蓋」修飾符
- 重寫特性中的方法元素 類型=> Iterator [V]的IterableLike; 方法元素需要'覆蓋」 修改
這裏是有問題的代碼:
/**
* Filesystem walker.
* <p>
* Less magic version of: http://rosettacode.org/wiki/Walk_Directory_Tree#Scala
*/
object FsWalker {
/**
* Recursive iterator over all files (and directories) in given directory.
*/
def walk(f: File): Iterable[File] = new Iterable[File] {
def elements = {
if (f.isDirectory()) {
// recurse on our child files
f.listFiles.elements.flatMap(child => FsWalker.walk(child).elements)
} else {
// just return given file wrapped in Iterator
Seq(f).elements
}
}
}
}
與導入提供的文件和與'iterator'爲'elements'全局替換,你代碼編譯。 – 2010-08-09 23:48:51