Cosa fa questo codice? Perché ci sono due serie di parametri del costruttore?Due set di parametri del costruttore in una classe di scala
class A(val x: Int)(val y: Int)
posso inizializzare un oggetto e utilizzare entrambi i campi:
val a = new A(5)(7)
println(a.x + ", " + a.y)
Se faccio una classe caso, posso abbinare solo la prima serie di parametri.
case class A(x: Int)(y: Int)
val a = A(5)(7)
a match {
A(x) => println(x)
}
Non è possibile creare 3 set di parametri. Non viene compilato. Quindi qual è il significato dei due set di parametri del costruttore?
Non è qualcosa che ho inventato. Ho trovato questa costruzione nella libreria scala swing: https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src/swing/scala/swing/event/MouseEvent.scala – PeWu