初学者用Scala编写Akka程序遇到的问题

def receive = {
case Greeter.Greet =>
println("Hello World!")
sender() ! Greeter.Done
}

在学习akka看见有sender() ! Greeter.Done这么一行语句。
这个 !代表什么意思啊?很急求大牛指导!

1个回答

tell 方法也就是叹号(!):在 Scala 中,通过“!” 来调用tell方法。如果你了解Java的部分,那么会注意到在Java API的tell 方法中必须指定消息的发送者,不过在 Scala 中,消息发送者是隐式传入的,因此我们不需要再显式传入消息发送者的引用。在 tell 方法“!”的方法签名中, 有一个隐式的 ActorRef 参数。如果在 Actor 外部调用 tell 方法的话,该参数的默 认值会设为 noSender。下面就是该方法的签名:
def !(message: Any)(implicit sender: ActorRef = Actor.noSender): Unit

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问