アクターが値を送信者に返す方法と、それを変数に格納する方法を知りたいです。
たとえば、2 つの数値の平方和を求めて出力する必要があるとします。
つまり、合計 = a 2 + b 2
私には2人の俳優がいます。1 つのアクターは、渡された任意の数値の 2 乗を計算します (たとえば、SquareActor
)。もう一方のアクターは、2 つの数値 (a 、b) を に送信し、SquareActor
それらの合計を計算します (たとえば、SumActor
) 。
/** Actor to find the square of a number */
class SquareActor (x: Int) extends Actor
{
def act()
{
react{
case x : Int => println (x * x)
// how to return the value of x*x to "SumActor" ?
}
}
}
/** Actor to find the sum of squares of a and b */
class SumActor (a: Int, b:Int) extends Actor
{
def act()
{
var a2 = 0
var b2 = 0
val squareActor = new SquareActor (a : Int)
squareActor.start
// call squareActor to get a*a
squareActor ! a
// How to get the value returned by SquareActor and store it in the variable 'a2' ?
// call squareActor to get b*b
squareActor ! b
// How to get the value returned by SquareActor and store it in the variable 'b2' ?
println ("Sum: " + a2+b2)
}
}
上記が不可能な場合はご容赦ください。俳優に対する私の基本的な理解自体が間違っているのではないかと思います。