0
저는 스칼라 배우가 처음이므로 코드가 컴파일되지 않는 이유가 없습니다. 분명히 '?' 회원이 아닌 경우 이미 akka.actors.patern._을 가져 왔지만 아직 작동하지 않습니다. 누구나이 어두운 물건을 좀 더 분명하게 해줄 수 있습니까? 감사합니다.스칼라, 라이브러리 akka.actor
import akka.actor.{Actor, ActorRef}
import akka.pattern._
class Registry extends Actor {
import Registry._
var registry:Map[String, Any] = Map()
def receive = {
case Lookup(name) => sender ! registry.get(name)
}
}
object Registry {
import akka.actor.{ActorSystem, Props}
case class Lookup(name: String)
// create dedicated actor infrastructure
val system = ActorSystem("myActorInfrastructure")
// create actor with a name and register it with the infrastructure
def apply(name: String) = system.actorOf(Props(new Registry()), name)
}
class Tweeter(val name: String, val regist:Registry, var followers:List[ActorRef]=List()) extends Actor{
import Tweeter._
def receive = {
case Follow(user) => {
//Here is the error
(regist!? Lookup(name)) match{
case Some(a:ActorRef) => a ! AddFollower(sender)
}
}
case AddFollower(follower) => followers = follower::followers
}
}
object Tweeter {
import akka.actor.{ActorSystem, Props}
case class Follow(user: String)
case class AddFollower(follower: ActorRef)
def apply(name: String, annuaire:Registry) = Registry.system.actorOf(Props(new Tweeter(name,annuaire)))
}
는 배우의 시스템에 바인딩 된 라이프 사이클을 갖로 배우의 미래를 실행하는 배우 시스템 디스패처를 사용하는 것이 좋습니다 - 그것은 것이다 종료 할 때 배우 시스템 않습니다. – johanandren