唯一标识 scala 中的参与者



我正在scala中构建一个简单的日志记录类,它将所有日志信息写入文件。这是家庭作业的一部分。因此,我无法使用java,scala或akka库中已经可用的记录器。你们中的任何人能否告诉如何在 scala 中唯一标识 actor,即每个 actor 是否有资源 ID 或任何其他 ID。如果是这样,如何访问它?

我尝试在 actor 对象上使用 hashCode()。但它没有给出预期的结果,因为每个对象的值都会发生变化,并且可以为单个参与者创建许多对象。

如果你使用的是 akka actor,你可以通过查看 self.path 来获取演员的名字(self 是一个 ActorRef)

http://doc.akka.io/api/akka/2.0.4/#akka.actor.ActorPath

编辑:

如果你正在使用 scala actor,那么你可以做一些类似的事情......

class MyActor(name: String) extends Actor { 
  def act() {
    receive {
      case _ => println("Message on actor: " + name)
    }
  } 
}
val actor1 = new MyActor("actor1")
val actor2 = new MyActor("actor2")

最新更新