我仍然有时会被斯卡拉偶尔的句法魔法所迷惑。
我想,写作
array(5)
只是
的快捷方式 array.apply(5)
。 (正如在Array的文档中所写的那样。)
然而,我可以很开心地
array(5) = 3
但我做不到
array.apply(5) = 3
。
发生了什么事?
答案 0 :(得分:12)
=
左侧有不同的规则:
a.x = b
已翻译为a.x_=(b)
(前提是还有x()方法)
a(i1,... in) = b
已转换为a.update(i1...,in, b)
所以array(5) = 3
是array.update(5,3)
当然,对于数组,它直接编译为数组写入,中间没有方法调用。