我想更改多维数组中的所有值,但收到“重新分配给 val”错误。
斯卡拉代码:
var cal = Array.ofDim[Double](300, 10000000);
cal.foreach(x => {
x.foreach({o => o = 5.1} //here it'll be more complicated code
)});
有没有人知道如何重新分配 Array 中的值?
谢谢
我想更改多维数组中的所有值,但收到“重新分配给 val”错误。
斯卡拉代码:
var cal = Array.ofDim[Double](300, 10000000);
cal.foreach(x => {
x.foreach({o => o = 5.1} //here it'll be more complicated code
)});
有没有人知道如何重新分配 Array 中的值?
谢谢
transform
在可变序列上有就地修改批量操作。
for (y <- 0 until cal.length) {
cal(y).transform(x => 5.1)
}
你也可以这样做:
for (y <- 0 until cal.length) {
val row = cal(y)
for (x <- 0 until row.length) {
row(x) = 5.1
}
}
我不确定这是否是最好的方法,但它有效:
val cal = Array.ofDim[Double](300, 10000000)
(0 until cal.length).foreach(rowIndex => {
val row = cal(rowIndex)
(0 until row.length).foreach(colIndex => {
row(colIndex) = 5.1 //here it'll be more complicated code
})
})
您收到错误的原因是您试图将值分配给o
.o => o = 5.1
由于您的使用var
,您可以简单地
var cal = Array.ofDim[Double](300, 10000000);
cal = cal.map{
a=>a.map{
o=> 1.5 \\complex calculations
}
}
注意:这不是惯用的 scala 甚至不是功能性的,但它确实有效。