我正在 scala 中构建一个简单的日志记录类,它将所有日志信息写入文件。这是家庭作业的一部分。因此,我不能在 java 或 scala 或 akka 库中使用已经可用的记录器。你们中的任何人都可以告诉如何在scala中唯一标识演员,即每个演员是否有资源ID或任何其他ID。如果是这样,如何访问它?
我尝试在演员对象上使用 hashCode() 。但它并没有给出预期的结果,因为每个对象的值都会发生变化,并且可以为单个参与者创建许多对象。
如果您使用的是 akka 演员,您可以通过查看 self.path 来获取演员的名称(self 是一个 ActorRef)
http://doc.akka.io/api/akka/2.0.4/#akka.actor.ActorPath
编辑:
如果您使用的是 scala 演员,那么您可以执行类似...
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")