2011-11-02 15 views
6

Basta leggere i campioni Akka, non capisco come è definito self.reply? Per quanto posso vedere, self reply viene utilizzato all'interno dei blocchi receive per rispondere a un messaggio. Ma per quanto riguarda reply è un metodo di self, quindi è self?Che cosa è "self" in Akka?

PS: BTW, potresti consigliarti un buon articolo di quickstart sulle basi di Akka e gli attori remoti con Scala - Sarei grato se potessi pubblicare un link come commento qui. In questo momento sto leggendo this.

risposta

18

self è un riferimento all'istanza ActorRef che contiene quell'attore.

Quando si crea un nuovo attore in Akka, il metodo actorOf[class] restituisce un'istanza di ActorRef, non dell'attuale implementazione dell'attore, l'attore stesso è nascosto. Questo ActorRef è ciò che usi per interagire con l'attore. Quindi lo self può essere utilizzato dall'attore stesso per ottenere questo riferimento.

Per esempio, se il vostro attore ha voluto inviare un messaggio a se stesso, che avrebbe fatto

self ! Message