Vous pouvez penser comme un modèle normal correspondant comme suit. Donc, oui, vous devriez le définir en premier, utiliser l'objet pour Message sans paramètres et la classe de cas pour ceux qui ont des paramètres. (Comme Silvio Bierman l'a fait remarquer, en fait, vous pouvez utiliser n'importe quel type de pattern, donc j'ai légèrement modifié cet exemple)
Ce qui suit est l'exemple de code.
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"
C'était la bonne réponse !! Je me demande où vous avez obtenu cette information. Parce que sur le tutoriel officiel, il n'y a pas beaucoup d'informations. Avez-vous lu le livre "programming in scala", ou un autre site web? – benzen
@BenZen Oui, je lis "programmation en scala", et il dit que l'argument de receive est une fonction partielle. Ce qui signifie que vous pouvez utiliser le motif correspondant. Je vous recommande d'obtenir une copie de "Programming in Scala" écrit par Martin Odersky, c'est un livre génial et présentez Scala de manière exhaustive. –