我在一个运行良好的 Scala 类中进行了代码更改。在尝试编译修改时,编译器吐出与此(预先存在的)代码行相关的错误消息“value to is not a member of Int”:
for (i <- 0 to cColumn -1) { ... }
在做一些研究时,我发现了一些关于“to”方法的错误报告——而且“to”显然是 intWrapper 类中提供的一种方法(?)。
所以,基于这些信息,我开始查看我班级的导入语句...... intWrapper 没有这样的导入。(问:既然如此,它最初是如何编译/运行的?)让这(对我而言)更有趣的是,当我开始在代码库中为该导入进行全局搜索时,我意外终止了编译器(sbt)会话......但是当我重新启动它时,该类编译得很好。完全没有错误。(并且与上一届会议相比没有代码更改)
任何人对导致这种间歇性行为的原因有任何想法吗?
注意:
1) 使用 Scala 2.10.2 和 javac 1.7.0_25
2) 对类的代码更改与示例功能无关,也没有改变任何类的导入
更新:这里是变量声明:
val meta = rs.getMetaData()
val cColumn = meta.getColumnCount()
编辑:根据建议,这里是测试行(现在都可以编译):
implicitly[scala.Int => scala.runtime.RichInt]
intWrapper(3) to 4
for (i <- 0 to 33 -1) { /* do something smart */ }
for (i <- 0 to cColumn -1) { ... }
编辑 2这是完整的编译器错误:
[error] /path/to/src/file/DBO.scala:329: value to is not a member of Int
[error] for (i <- 0 to cColumn -1) {
[error]
该错误在课堂上重复了约 18 次。(这是一个 DBO-DB 接口层);其中 DBO.scala 是包含新修改特征的文件。