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

时间:2012-07-22 01:57:35

标签: scala

我仍然有时会被斯卡拉偶尔的句法魔法所迷惑。

我想,写作

array(5)

只是

的快捷方式

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

然而,我可以很开心地

array(5) = 3

但我做不到

array.apply(5) = 3

发生了什么事?

1 个答案:

答案 0 :(得分:12)

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

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

当然,对于数组,它直接编译为数组写入,中间没有方法调用。