我正在使用scala中的Actors编写一个程序,其中一个actor(Actor1)接受两个数字作为命令行参数,并将消息发送给另一个actor Actor2(计算它们的总和)。 Actor2将结果发送给Actor1,后者将其打印在屏幕上。
class Actor1 extends Actor {
def main(args: Array[String]) {
val n= Integer.parseInt(args(0))
val k= Integer.parseInt(args(1))
val actor2 = new Actor2
actor2 ! (n, k)
}
def act()
{
react{
case num: Integer =>
println(num)
case _=>
println("Sum not received")
exit
}
}
}
class Actor2 extends Actor {
def act(){
loop
{
react
{
case(n:Int, k:Int) =>
val i = n + k
val actor1 = new Actor1
actor1 ! i}
}
}
}
是否可以在扩展Actor的类中定义main(),还有其他方法可以接受Actor的命令行参数吗? 它显示错误:类Actor1需要是抽象的,因为方法在特性中起作用类型()的反应器单元未定义。