Comment est Scala « remplir » il manque un argument à une classe de cas?
-
21-08-2019 - |
Question
Quand j'appelle:
actor_ ! Exit
Comment est-ce converti en une construction de:
case class Exit(from: AbstractActor, reason: AnyRef)
En particulier, comment est-ce que quand j'appelle cela à partir d'un acteur à distance (client) qui a été link
ed à un acteur distant (serveur), que le serveur reçoit une instance de Exit
où la propriété from
est un acteur:
'remotesender0@Node(10.10.7.90,8366)
En fait, je voudrais savoir comment je peux obtenir une poignée sur cet objet-client à distance acteur!
La solution
Qu'est-ce que vous envoyez est l'objet singleton Exit
. Dans l'API Scala, faites défiler juste en bas devant les classes, et rechercher les objets.
object Exit
extends (AbstractActor, AnyRef) => Exit
Maintenant, je n'ai pas vu votre code, donc je ne sais pas comment vous l'utilisez. Remarquez, cependant, que cette sortie d'objet est (en fait, étend) une fonction qui prend deux paramètres et renvoie une classe de cas de sortie formé par eux. Il aura également des trucs mis en par la déclaration de la classe affaire.
Ou, en d'autres termes, Exit.apply (x, y) (la fonction de sortie appliquée) a le même résultat que la sortie (x, y) (le constructeur pour la classe de sortie). Mais alors que vous ne pouvez pas passer une classe, vous pouvez passer un objet.