4

我有时仍然对 scala 偶尔的句法魔术感到困惑。

我想,那个写作

array(5)

只是一个捷径

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

不过,我可以做的很开心

array(5) = 3

但我做不到

array.apply(5) = 3.

到底是怎么回事?

4

1 回答 1

12

=: 左边有不同的规则a.x = b被转换为a.x_=(b)(假设还有一个 x() 方法) a(i1,... in) = b被转换为a.update(i1...,in, b)

array(5) = 3也是_array.update(5,3)

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

于 2012-07-22T02:10:00.697 回答