2013-10-10 97 views
0

參考以下問題的答案:如何在Scala的方法名X映射到方法姓名Y像列表

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

怎麼斯卡拉開發商映射在List定義的方法apply[A](xs: A*)對象,可用作List[A](cs: A*)

而且他們是如何轉化aListInstance(n: Int)的方法apply(n: Int)(返回列表的第n個元素)在的List類中定義?

在這兩種情況下,我打電話apply()方法,而不寫.apply()在我的代碼。這是如何運作的?

回答

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) 

等等等等。

相關問題