将新的Iterable {}代码从Scala 2.7.7移植到2.8
|
我看到了这个帖子:
What are the biggest differences between Scala 2.8 and Scala 2.7? 它似乎涵盖了一些变化,但似乎没有提到我遇到的第一个编译问题.有什么建议? >类型参数的种类(Iterable [Any] with(A with Int)=> Any)不符合类GenericCompanion中类型参数(类型CC)的预期种类. Iterable [Any] with(A with Int)=>任何类型参数都不匹配CC类型的预期参数:没有类型参数,但类型CC有一个 这是有问题的代码: /**
* 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
}
}
}
}
解决方法
前面的元素现在是迭代器.
您应该使用-Xmigration进行编译,以获取有关如何将代码从2.7移植到2.8的有用提示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
