2011-11-02 6 views
6

Po przeczytaniu próbek Akki, nie rozumiem, jak zdefiniowano self.reply? O ile widzę, self reply jest używany wewnątrz bloków receive, aby odpowiedzieć na wiadomość. Ale jeśli chodzi o reply jest metodą self, to co to jest self?Co to jest "self" w Akce?

PS: BTW, może polecisz dobry artykuł na temat podstaw Akki i zdalnych aktorów z Scala - byłbym wdzięczny, gdybyś mógł zamieścić link jako komentarz tutaj. W tej chwili czytam this.

Odpowiedz

18

self jest odniesienie do przykładu ActorRef zawierający ten aktor.

Kiedy tworzysz nowego aktora w Akka, metoda actorOf[class] zwraca instancję ActorRef, a nie rzeczywistą implementację Aktora, sam aktor jest ukryty. Ten ActorRef jest tym, czego używasz do interakcji z Aktorem. Tak więc aktor może używać tego samego aktora do uzyskania tego odniesienia.

Na przykład, jeśli aktor chciał wysłać wiadomość do siebie, to zrobi

self ! Message