Как Scala «заполняет» отсутствующие аргументы в классе дел? - PullRequest
6 голосов
/ 29 июня 2009

Когда я звоню:

actor_ ! Exit

Как это превращается в конструкцию:

case class Exit(from: AbstractActor, reason: AnyRef)

В частности, как получается, что когда я вызываю это от удаленного (клиентского) субъекта, который был link передан удаленному (серверному) субъекту, сервер получает экземпляр Exit, где from свойство актера:

'remotesender0@Node(10.10.7.90,8366)

По сути, я хотел бы выяснить, как я могу получить дескриптор этого объекта субъекта-клиента-клиента!

1 Ответ

2 голосов
/ 29 июня 2009

То, что вы отправляете, является одноэлементным объектом Exit. В Scala API просто прокрутите вниз классы и найдите объекты.

object Exit 
extends (AbstractActor, AnyRef) => Exit

Теперь я не видел ваш код, поэтому я не знаю, как вы его используете. Однако обратите внимание, что этот объект Exit (фактически расширяет) функцию, которая принимает два параметра и возвращает сформированный ими класс случая Exit. В него также будут помещены некоторые вещи с помощью оператора case.

Или, другими словами, Exit.apply (x, y) (применяемая функция Exit) имеет тот же результат, что и Exit (x, y) (конструктор для класса Exit). Но хотя вы не можете передать класс, вы можете передать объект.

...