Schema cond in scala Sprache

8

Hat scala eine Entsprechung zum Schema cond?

    
bb2 06.11.2010, 02:10
quelle

3 Antworten

2

Ich denke, Sie suchen nach match (oder einfach nur if/else if/else ).

    
steinar 06.11.2010, 02:21
quelle
2
%Vor%

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.

    
Collin 06.11.2010 14:04
quelle
1

Natürlich funktioniert weder match noch if genau so wie cond . Eine Möglichkeit ist, so zu machen:

%Vor%

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.

    
Peter Lewerin 06.11.2010 14:13
quelle

Tags und Links