Considérez les points suivants Scala cas de la classe:
case class WideLoad(a: String, b: Int, c: Float, d: ActorRef, e: Date)
La correspondance de modèle me permet d'en extraire un champ et jeter les autres, comme suit:
someVal match {
case WideLoad(_, _, _, d, _) => d ! SomeMessage(...)
}
Ce que je voudrais faire, et quoi de plus pertinent qu'un cas de classe a ~20 odd champs, est d'extraire seulement quelques valeurs dans une voie qui n'implique pas de taper WideLoad(_, _, _, _, _, some, _, _, _, thing, _, _, interesting)
.
J'espérais que nommé args pourrait aider ici, bien que la syntaxe suivante ne fonctionne pas:
someVal match {
case WideLoad(d = dActor) => dActor ! SomeMessage(...)
// ^---------- does not compile
}
Est-il de l'espoir ici, ou suis-je coincé taper beaucoup, beaucoup d' _, _, _, _
?
EDIT: je comprends que je peux faire, case wl @ WideLoad(...whatever...) => wl.d
, pourtant je suis toujours demander si il n'y a même terser syntaxe qui fait ce dont j'ai besoin sans avoir à introduire une extra - val
.