Die ersten beiden Case-Anweisungen zeigen typenbasierte Mustervergleiche. Die dritte zeigt die Verwendung eines Extractors, um Daten in Bestandteile zu zerlegen und diese Teile Variablen zuzuordnen. Die dritte zeigt eine variable Musterübereinstimmung, die zu allem passt. Nicht gezeigt ist der Fall:
%Vor%Was wie das variable Muster übereinstimmt, stimmt mit allem überein, bindet das übereinstimmende Objekt jedoch nicht an eine Variable.
Die Fall-Klasse am oberen Rand ist Scala-Kurzschrift zum Erstellen eines Extraktors sowie der Klasse selbst.
Natürlich funktioniert weder match
noch if
genau so wie cond
. Eine Möglichkeit ist, so zu machen:
Dieses Objekt akzeptiert etwas Iterable, wobei jedes Element ein Paar einer Funktion ist, die Boolean zurückgibt, und eine Funktion, die Any zurückgibt. Es versucht, ein Element zu finden, dessen erste Funktion true zurückgibt, nicht mehr sucht, wenn es eins findet, die zweite Funktion eines gefundenen Elements aufruft und das Ergebnis dieser Funktion zurückgibt (oder (), wenn keines gefunden wurde).
Beispiele:
%Vor%ETA: Ja, ich weiß, es ist hässlich, aber es funktioniert.
Tags und Links scala