0

参考以下问题的答案:

List.empty vs. List() vs. new List()

Scala 的开发人员如何映射对象apply[A](xs: A*)中定义的方法,以便用作?List List[A](cs: A*)

另外,它们是如何转换为aListInstance(n: Int)中定义的方法apply(n: Int)(返回列表的第 n 个元素)的?List

在这两种情况下,我都在apply()不编写代码的情况下调用方法.apply()。这是如何运作的?

4

1 回答 1

2

它之所以有效,是因为 Scala 语言规范是这样说的。

foo(bar)

被翻译成

foo.apply(bar)

就像

foo.bar = baz

被翻译成

foo.bar_=(baz)

foo(bar) = baz

被翻译成

foo.update(bar, baz)

foo bar baz

被翻译成

foo.bar(baz)

foo bar_: baz

被翻译成

baz.bar_:(foo)

等等等等。

于 2013-10-10T12:14:36.303 回答