我正在尝试弄清楚如何在 Scala 中使用 Akka。我做对了吗,我需要做的不是这个:
class Class1 {
def someMethod1 = {
//.... some operations....
"someStringData"
}
def someMethod2(param1: Int, param2: Double, param3: BigInt) = {
//.... some operations....
new someClass
}
}
//.............................
object Application extends App {
val c = new Class1
val stringData = c.someMethod1
val someClass = c.someMethod2
}
我必须这样做:
case object SomeMethod
case class SomeClass(a: Int, b: Double, c: BigInt)
case class SomeReturnClass(d: Boolean)
class Class1 extends Actor{
def receive = {
case SomeMethod => {
//.... some operation....
sender ! "someStringData"
}
case SomeClass(a, b, c) => {
//...some operations....
val result: Boolean = ..... // some operations....
sender ! new SomeReturnClass(result)
}
}
}
//.............................
object Application extends App {
val system = ActorSystem("HelloSystem")
val helloActor = system.actorOf(Props[Class1], name = "helloactor")
val stringData: String = helloActor ! someMethod1
val someClass: SomeReturnClass = helloActor ! someMethod2
}