Que fait ce code? Pourquoi existe-t-il deux ensembles de paramètres de constructeur?Deux ensembles de paramètres constructeurs dans une classe scala
class A(val x: Int)(val y: Int)
Je peux initialiser un objet et utiliser les deux champs:
val a = new A(5)(7)
println(a.x + ", " + a.y)
Si je fais une classe de cas, je ne peux correspondre que par le premier ensemble de paramètres.
case class A(x: Int)(y: Int)
val a = A(5)(7)
a match {
A(x) => println(x)
}
Il n'est pas possible de créer 3 ensembles de paramètres. Il ne compile pas. Alors, quelle est la signification des deux ensembles de paramètres du constructeur?
Ce n'est pas quelque chose que j'ai inventé. J'ai trouvé cette construction dans la librairie scala swing: https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src/swing/scala/swing/event/MouseEvent.scala – PeWu