有时我仍然对 scala 偶尔的语法魔术感到困惑。
我想,那写array(5)
只是一个捷径array.apply(5)
。 (如 Array 的文档中所写。)
然而,我可以做得很开心array(5) = 3
但我做不到array.apply(5) = 3
。
到底是怎么回事?
最佳答案
=
左侧有不同的规则:a.x = b
被翻译成 a.x_=(b)
(前提是还有一个 x() 方法)a(i1,... in) = b
转化为 a.update(i1...,in, b)
所以 array(5) = 3
是 array.update(5,3)
当然,对于数组,它直接编译为数组写入,中间没有方法调用。
关于scala - 如何在 Scala 中更新数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597237/