アクター (Actor1) がコマンド ライン引数として 2 つの数値を受け取り、別のアクター Actor2 (合計を計算する) にメッセージを送信する scala でアクターを使用するプログラムを作成しています。Actor2 は結果を Actor1 に送信し、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}
}
}
}
アクターを拡張するクラス内で main() を定義することは可能ですか? また、アクターがコマンド ライン引数を受け入れる他の方法はありますか? エラーが表示されます: class Actor1 needs to be abstract, because method act in trait Reactor type ()Unit は定義されていません.