如何更新在scala中工作的数组?

Kar*_*lek 4 scala

我有时会被斯卡拉偶尔的句法魔法困惑.

我想,写作

array(5)

只是一个捷径

array.apply(5).(正如在Array的文档中所写的那样.)

但是,我可以很开心

array(5) = 3

但我不能这样做

array.apply(5) = 3.

到底是怎么回事?

Did*_*ont 12

左侧有不同的规则=: a.x = b被翻译为a.x_=(b)(前提是还有一个x()方法) a(i1,... in) = b被转换成a.update(i1...,in, b)

所以,array(5) = 3array.update(5,3)

当然,对于数组,它直接编译为数组写入,而不需要在它们之间进行方法调用.