我在akka中有以下Actor模型声明:
val wireA = system.actorOf(Props(new Wire(false)), "Input")
val wireB = system.actorOf(Props(new Wire(false)), "Output")
inverter ! generateOutput(wireA, wireB)
来自generateOutput(input:ActorRef, output:ActorRef)
,
我需要访问构造每个特定boolean
的{{1}}参数(即在每个相应的ActorRef
构造函数中找到的参数false
。
如何达成?
答案 0 :(得分:2)
您可以向每个演员发送消息,询问其当前状态:
case object Status
case object StatusResult(value: Boolean)
class MyActor(wire: ActorRef) extends Actor {
wire ! Status
def receive = {
case StatusResult(value) => ...
}
wireA
和wireB
是ActorRef
,他们不会公开他们的状态,与他们沟通的唯一方法是通过消息。
答案 1 :(得分:2)
这不是你应该玩Actors的方式。你得到了ActorRef,你只用它来玩它。你可以通过向它传递一个消息来询问actor的boolean值:
wireA! “GETVAL”
并等待发送方actor中的响应。请查看Actors的基本教程:
http://alvinalexander.com/scala/scala-akka-actors-ping-pong-simple-example