编辑/更新:问题已解决!
这有点奇怪,因为在 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”表达式究竟是用来做什么的?
感谢所有的帮助。