Вы можете думать, что это нормальное сопоставление с шаблоном, как показано ниже.
match (expr)
{
case a =>
case b =>
}
Итак, да, вы должны сначала определить его, использовать объект для Message без параметров и класс case для тех, у которых есть параметры.(Как отметил Сильвио Берман, на самом деле вы можете использовать все, что может быть сопоставлено с шаблоном, поэтому я немного изменил этот пример)
Ниже приведен пример кода.
import scala.actors.Actor._
import scala.actors.Actor
object Meet
case class Feromone (qty: Int)
class Test extends Actor
{
def act ()
{
loop {
react {
case Meet => println ("I got message Meet....")
case Feromone (qty) => println ("I got message Feromone, qty is " + qty)
case s: String => println ("I got a string..." + s)
case i: Int => println ("I got an Int..." + i)
}
}
}
}
val actor = new Test
actor.start
actor ! Meet
actor ! Feromone (10)
actor ! Feromone (20)
actor ! Meet
actor ! 123
actor ! "I'm a string"