2010-04-16 7 views
4

Je veux écrire une classe dont le constructeur prend deux paramètres, mais les arguments ne sont pas réellement membres de la classe. par exemple. Après avoir construit le 'set', je ne me soucie pas de V1 et V2. Existe-t-il un moyen d'exprimer cela à Scala?Dans Scala, comment écrire une classe avec un constructeur, dont tous les arguments ne sont pas des membres de classe?

+1

Je ne connais pas du tout Scala, alors voici une conjecture: si vous ne vous référez pas à ces paramètres ailleurs, le compilateur les optimisera automatiquement. –

Répondre

4

Eh bien, exactement comme ça. Si les arguments constructeur ne sont pas marqués val ou var, ni la classe case class, ils seront conservés s'ils sont utilisés dans les méthodes (ou lazy val, je suppose). Si elles sont utilisées uniquement dans le constructeur, elles ne seront pas affectées à l'objet, pas même en tant que champs privés.

+3

Mais les paramètres seront toujours dans la portée de la classe, ce qui peut être surprenant: class Scope (i: Int) {def iCanSeeYou() = i + 3} –

Questions connexes