参与者是通过消息传递与其他参与者进行通信的实体。Actor有自己的状态和行为。就像在面向对象的编程中一样, 所有事物都是对象, 就像在基于角色的系统中一切都是角色一样。
换句话说, 我们可以说参与者是封装状态和行为的对象。
如何创建Actor?
你可以通过扩展Actor特性并实现它的receive方法来创建actor。参与者每次收到消息时都会调用此方法。 receive方法对接收到的消息进行模式匹配, 然后决定要做什么。
在这里, 我们创建了一个简单的” Hello Akka”程序。
你好Akka示例
import akka.actor.Actor; // Importing actor trait
import akka.actor.ActorSystem;
import akka.actor.Props;
class HelloAkka extends Actor{ // Extending actor trait
def receive = { // Receiving message
case msg:String => println(msg)
case _ =>println("Unknown message") // Default case
}
}
object Main{
def main(args:Array[String]){
var actorSystem = ActorSystem("ActorSystem"); // Creating ActorSystem
var actor = actorSystem.actorOf(Props[HelloAkka], "HelloAkka") //Creating actor
actor ! "Hello Akka" // Sending messages by using !
actor ! 100.52
}
}
输出
Hello Akka
Unknown message
在上面的示例中, 我们通过扩展Actor特质并覆盖接收方法来创建actor” HelloAkka”。你必须为所有收到的邮件提供区分大小写。以防万一, 如果有未知消息, 你需要像上例一样提供默认大小写。