编辑/更新:问题已修复!
这在迭代集合时有点奇怪 在Scala中通常是直接的,但我确实遇到了编译错误 同时使用案例类中的双数组。错误说:
error: value foreach is not a member of Array[Double] for(d <- data.data_arr)
好的,这是案例类:
case class StatsData (name: String,
timeUnit: TimeUnit,
data_arr: Array[Double],
min: Double,
max: Double){}
这是关键点:
/*Doesn't work */
for(d <- data.data_arr) {
println(d) // can't fetch value d here
number = new Number(col, row, d)
}
奇怪的是,无论我使用什么样的迭代,它都无法正常工作。例如,使用数组索引
for (i <- data_arr.length-1)
以及将数组转换为序列会引发与上面完全相同的错误;
for(d <- data.data_arr.toSeq)
我做错了什么?
感谢您对此事的任何帮助。
编辑/更新:问题已修复!
事实证明,问题的原因是IntelliJ的项目设置或结构中的一个问题,我不能肯定地说,但它都是通过创建一个新项目来解决的。 相同的代码现在运行完全正常。对不起,但几乎所有帖子都帮助我追查问题。
@yakshaver
究竟用于什么是“yield”表达式?
感谢所有帮助。
答案 0 :(得分:0)
两个
Array(1, 2, 3) foreach println
和
for(i <- Array(1, 2, 3)) yield i
和
for(i <- Array(1, 2, 3)) { println(i) }
在我的2.10.0-RC3中很好地工作。