Widziałem ten wątek:Przenoszenie nowy Iterable {} kod z Scala 2.7.7 do 2.8
What are the biggest differences between Scala 2.8 and Scala 2.7?
Wydaje pokrycie pewnych zmian, ale najpierw skompilować problemy jakie dotknęły nie wydają które należy wspomnieć. Jakieś sugestie?
- rodzaje argumentów typu (iterable [Każdy] z (A z Int) => Wszelkie) nie są zgodne z oczekiwanymi rodzaju parametrów typu (typ CC) w klasie GenericCompanion. Iterable [Any] with (A with Int) => Parametry typu Any nie pasują do oczekiwanych parametrów typu CC: nie ma parametrów typu, ale typ CC ma jedno niemożliwe utworzenie obiektu
- , ponieważ IterableLike cecha IterableLike => iterator [java.io.File] jest niezdefiniowane
- tworzenie przedmiotem niemożliwe, ponieważ metody iteracyjnej w cechy IterableLike typu => iterator [V], nie jest określona
- nadrzędne elementów sposobu, w cechy IterableLike typu => Iterator [java.io.File]; method elementy wymagają modyfikatora "override"
- nadpisanie elementów metody w funkcji IterableLike typu => Iterator [V]; metody elementów wymaga `override” modyfikujący
Oto kod w pytaniu:
/**
* 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
}
}
}
}
Dostarczany z importu do pliku i globalnego podstawienia 'iterator' dla' elements', swojej kompiluje kod. –