使用Actors传递消息

时间:2012-09-10 02:00:33

标签: scala

我正在使用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需要是抽象的,因为方法在特性中起作用类型()的反应器单元未定义。

0 个答案:

没有答案