79
голосов
3ответов
29906 просмотров

How does Scala's apply() method magic work?

In Scala, if I define a method called apply in a class or a top-level object, that method will be called whenever I append a pair a parentheses to an instance of that class, and put the appropriate arguments for apply() in between them. For example: class Foo(x: Int) { def apply(y: Int) = { ...

107
голосов
7ответов
32047 просмотров

В чем причина наличия сопутствующих объектов в Scala?

Есть ли случай, когда требуется сопутствующий объект (синглтон) для класса? Зачем мне создавать класс, скажем Foo, а также создавать для него сопутствующий объект?