Skala -Muster -Matching

Skala -Muster -Matching
Die Scala -Sprache hat ein wirksames Merkmal namens Muster Matching. Dies erleichtert den Code kürzer und leichter zu lesen und ermöglicht gleichzeitig den Vergleich von Elementen mit komplizierten Mustern. Es ist eine Methode, um einen Wert mit einem Muster zu vergleichen. Es ist vergleichbar mit den Switch -Anweisungen von Java und C. In diesem Thema lernen wir die allgemeinen Muster -Matching -Techniken und wie sie zu unserem Vorteil verwendet werden können.

Anstatt eine Switch -Anweisung zu verwenden, wird hier das Schlüsselwort "Übereinstimmung" verwendet. Das Wort "Übereinstimmung" wird in der Stammklasse von Scala konsequent deklariert, um sicherzustellen, dass alle Objekte darauf zugreifen können. Ein Muster und ein oder mehrere Ausdrücke sind in jeder Fallanweisung enthalten. Sie werden nur bewertet, wenn das angegebene Muster übereinstimmt. Der Pfeilcharakter (=>) wird verwendet, um das Muster von den Ausdrücken zu unterscheiden.

Komponenten der Musteranpassung in Scala

Die Übereinstimmungsausdrücke bestehen aus verschiedenen Komponenten:

    1. "Kandidat" bezieht sich auf den Wert, den wir verwenden, um den Mustern zu entsprechen.
    2. Das Schlüsselwort "Match".
    3. Der Code, der ausgeführt wird, wenn das Muster übereinstimmt.
    4. Eine Standardanweisung in Abwesenheit eines Musterübereinstimmungen. Da es das Unterstrahlungssymbol (_) enthält und nach den Fallklauseln kommt, kann die Standardklausel leicht zu identifizieren sein.

Schauen wir uns ein unkompliziertes Beispiel an, um diese Elemente zu demonstrieren:

Beispiel 1: Musteranpassung des Typs „int“ in Scala

Als Musterübereinstimmung erfordert ein Beispiel einen Ganzzahlwert und gibt auch eine Ganzzahl zurück. Andere Parameter als ganze Zahlen können nicht übergeben werden. Dies führt zu einem Fehler.


Innerhalb des Scala -Skript. Es enthält die Hauptmethode, mit der das Println zur Anzeige der Anweisung verwendet wird. In der Println -Methode haben wir die Testmethode aufgerufen. Die Testmethode nimmt den Parameter des ganzzahligen Typs „1“ an. Als nächstes haben wir eine funktionale Ansatzmethode, bei der wir die Testmethode definiert haben. Die Testmethode nimmt die Variable "I" vom Typ "int" an.

Wir setzen das Schlüsselwort "Übereinstimmung" mit der Variablen "I". Innerhalb des Blockabschnitts werden die Fallanweisungen verwendet. Wir haben hier drei Fälle, die den Ausdruck nach dem zufriedenstellenden Fall zurückgeben. Der in einem Fall enthaltene Ausdruck wird bewertet, wenn der Wert von „I“ einem der Fälle übereinstimmt. Da wir in diesem ersten Versuch Erfolg haben, wird Fall 1 bewertet. Wenn der Wert von "i" nicht 0 oder 1 beträgt, wird der Standardfall "case_" durchgeführt.

Wir haben das oben erwähnte Scala -Programm im „Beispiel“ gespeichert.Scala ”Datei. Dann führen wir das Scala -Programm mit dem Objektnamen aus, den Sie im Skript angegeben haben. Hier haben wir "my_Object". Wir haben dieses Objekt mit dem Keyword von Scala ausgeführt. Wie Sie sehen können, wird der Ausdruck von Fall 1 erhalten, weil er dem Muster übereinstimmt.

Beispiel 2: Musteranpassung des Typs "String" in Scala

Jedes Objekt in Scala hat einen statischen Typ, der nicht geändert werden kann, da es sich um eine typisierte Sprache handelt. Ein Objekt der Typ -Zeichenfolge kann beispielsweise nur die String -Ausdrücke haben. Wie in der folgenden Abbildung zu sehen ist, erleichtert Scala es einfach, die Objekte mit dem Typ -Muster zu vergleichen.


Konstruieren Sie zunächst das Objekt des vorherigen Skala -Skripts. Dem Objekt wird der Name "Linux_Object" zugewiesen. Im Körper dieses Objekts haben wir die Hauptfunktionsdefinition. Die println. Danach haben wir eine Testfunktion, bei der die Variable „x“ der Typ -Zeichenfolge deklariert wird.

Wir haben dem Match -Modifikator dieser Variablen „X“ für ein Matching -Muster der Fälle zugewiesen. Im Block der Testmethode werden drei Fälle mit den Ausdrücken bereitgestellt. Hier wird der Fall mit der Wildcard "_" ausgeführt, weil kein Muster mit der "x" -Sequenz übereinstimmt.

Das Scala -Skript wird mit dem Scala -Modifikator und dem Namen des Objekts "Linux_Object" aus dem vorherigen Programm kompiliert. Die erhaltene Ausgabe hat den Ausdruck "Standardfall ausgeführt" aus dem "case_".

Beispiel 3: Musteranpassung von Fallklassen in Scala

Fallklassen sind eindeutige Klassen, die im Fall Expression-basierte Musteranpassung verwendet werden. Dies sind konventionelle Klassen mit dem Fall Special Modifikator. Das folgende Beispiel ist eine einfache Illustration der Musterübereinstimmung, die die Fallklasse verwendet:


Durch die Definition des Objekts „my_demo“ haben wir dieses Skala -Skript gestartet. In der Objektkörper „My_demo“ haben wir eine Hauptmethode -Definition. Hier erklärten wir die drei Variablen - "Cyan", "Dora" und "Marrie" - mit dem Schlüsselwort "Val". Die Variablen, die als "Person" -Klasse mit dem neuen Schlüsselwort bezeichnet werden und die Werte gegen jede Variable festlegen. Die an die Klasse "Person" übergebenen Werte sind die Zeichenfolgenwerte und der Ganzzahlwert. Dann iterieren wir die Liste der Variablen „Cyan“, „Dora“ und „Marrie“ unter Verwendung der für Schleife und verwenden die Fallausdrücke mit dem Methodenkonstruktor der „Person“, indem wir die Werte angeben.

Die "Cyan" -Variable ist der passende Ausdruck im ersten Fall, der Name "Dora" ist der passende Ausdruck im zweiten Fall, und für alle anderen Werte werden die Details gemäß den angegebenen Fall im letzten Fall angezeigt. Der P_Name und die P_AGE -Parameter werden dem Personkonstruktor für einen leeren gegeben. Last but not least ist die Klassenperson leer, weil keine Methode darin definiert werden muss.

Wenn das vorherige Skala -Skript ausgeführt wird.

Abschluss

Dies ist ein Handbuch für das Skala -Muster -Matching. Das Musteranpassung in Scala ist verbessert als das Wechsel in Java. Das Streichholzschlüsselwort wird verwendet, um den in Scala bereitgestellten Eingaben zu entsprechen. Hier gehen wir zusammen mit der richtigen Syntax und den relevanten Beispielen eine kurze Einführung in die Musteranpassungsfunktionalität von Scala durch. Das Muster -Matching hat den Vorteil, dass sie unglaublich vielseitig und extrem leistungsfähig sind. Die Datenstruktur ist im Muster dynamisch zerstört. Die für diesen Ausdruck spezifischen Variablen können dann direkt diesen Komponenten zugewiesen werden.