我开始使用 Scala,我读到的第一件事就是 val 是:
variables that are assigned once and never change, and vars, variables that may change over their lifetime
但我很好奇为什么我可以这样做:
val foo = Array(1, 3 ,2)
scala.util.Sorting.quickSort(foo)
如果我现在检查 foo 变量是否已排序,这意味着它已更改...而且如果我执行 print(foo),两者都有相同的,因此该变量指向同一个对象(我可能认为变量只是指向一个新对象)
谁能解释一下吗?
最佳答案
foo
变量指向的数组正在改变,但 foo
指向该 Array
的事实并没有改变。尝试重新分配 foo
,您将看到您正在寻找的内容。
关于Scala vals 可以修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761040/