我正在使用 Scala 来尝试掌握它,所以这个代码示例只是学术性的。
我正在尝试将一个可变列表传递给一个函数,让该函数对其执行工作,然后在函数调用之后我可以使用更新的列表。
var data: List[Int] = List()
// Call to function to fill a list
data = initList(data)
// Output only 0-100
data.foreach( num => if (num < 100) { println(num) })
def initList(var data: List[Int]) : List[Int] = {
for ( i <- 0 to 1000 )
{
data = i :: data
}
data = data.reverse
data
}
上面唯一不能编译的代码是var
in def initList()
,因为 data 是 aval
我不能在函数中对其执行任何突变。
首先让我说我知道在 Scala 中,mutators 通常是不受欢迎的,所以我不仅愿意直接回答我的问题,而且愿意接受更好的方法来完全做到这一点。偶尔在项目中会有一段数据从一个地方到另一个地方进行更新,但是如果您不能将数据传递给要更改的函数,那么有什么好的选择呢?
我已经阅读了教程和谷歌搜索,我假设我找不到太多关于它的信息,因为在 Scala 中通常不会这样做。