Musterabgleich verwenden

In diesem Artikel haben wir uns mit der Unterstützung von C für Musterabgleich befasst. Die Musterübereinstimmung bietet uns eine präzise Syntaxübereinstimmung mit einem Typ, überprüft Eigenschaften und kombiniert diese Muster mit zusätzlichen Bedingungen. Im nächsten Artikel werden die Verbesserungen für die Standardschnittstellenmethoden von C 8 erläutert. Viele dieser Schalterarme sind Beispiele für rekursive Muster. Beispielsweise zeigt das Auto – Passagiere: 1″ ein konstantes Muster innerhalb eines Eigenschaftsmusters an. Nachdem Sie diese Methoden erstellt haben, können Sie einen anderen Schalterausdruck mit dem Tupelmuster verwenden, um die Preisprämie zu berechnen. Sie können einen Switch-Ausdruck mit allen 16 Armen erstellen: Der Ausdruck der Switch-Anweisung verhält sich ähnlich wie der Typ is, der einzige Unterschied ist, dass der Steuerungsfluss ein Fall im Vergleich zu einer if-Anweisung ist. Dies mag zunächst nicht wie eine große Sache erscheinen, aber bevor der Musterabgleich eingeführt wurde, war eine Switch-Anweisung auf numerische und Zeichenfolgentypen beschränkt. Die Mathematica-Funktion Cases filtert Elemente des ersten Arguments, die dem Muster im zweiten Argument entsprechen: Sequenzmuster (z. B.

eine Textzeichenfolge) werden häufig mit regulären Ausdrücken beschrieben und mit Techniken wie Backtracking abgeglichen. Das in diesem Tutorial verwendete Szenario hebt die Arten von Problemen hervor, die für die Musterübereinstimmung gut geeignet sind: Ich habe bereits die Tatsache behandelt, dass Switch-Ausdrücke die Menge an Code, die Sie schreiben, reduzieren und diesen Code besser lesbar machen können. Dies gilt auch beim Hinzufügen von Einschränkungen zu Ihren Typen. Die Änderungen an der Musterübereinstimmung in C-8.0 zeichnen sich wirklich aus, wenn man sich die Kombination von Tupeln, Dekonstruktion und so genannten rekursiven Mustern ansieht. Das einfachste Muster beim Musterabgleich ist ein expliziter Wert oder eine Variable. Betrachten Sie beispielsweise eine einfache Funktionsdefinition in der Haskell-Syntax (Funktionsparameter befinden sich nicht in Klammern, sondern sind durch Leerzeichen getrennt, = ist keine Zuweisung, sondern Definition): Die Beispiele in diesem Thema verwenden das empfohlene Konstrukt, bei dem ein Musterübereinstimmungsausdruck eindeutig die Übereinstimmungsvariable im wahren Zweig der if-Anweisung zuweist. Sie könnten die Logik umkehren, indem Sie sagen, ob (!( Form ist Quadrat s)) und die Variable s würde definitiv nur im falschen Zweig zugewiesen. Obwohl dies gültig ist, wird es nicht empfohlen, da es verwirrender ist, der Logik zu folgen. Variableninstanzen d und e wird der Wert der Person nur zugewiesen, wenn das Muster abgeglichen wird (d.

h. sie befinden sich nur innerhalb ihrer entsprechenden Fallblöcke im Gültigkeitsbereich und können nicht außerhalb verwendet werden). Die neueste Version von C- und Vorschau führt einige wichtige Verbesserungen beim Musterabgleich ein. Um die Ansichtssprachen in Visual Studio 2019 zu verwenden, müssen Sie Visual Studio 2019 Preview verwenden oder die Vorschausprachenfeatures aktivieren. Die allgemeine Verfügbarkeit von C 8.0 ist später in diesem Jahr, erwartet zur gleichen Zeit, dass .NET Core 3.0 ausgeliefert wird. Wie können wir neue Möglichkeiten finden, eine Einschränkung für die Eigenschaften eines Typs auszudrücken? Wie können wir den Ausdruck von Blockmustern intuitiver und lesbarer machen? In C-8.0 macht die Sprache einen weiteren Schritt vorwärts, um eine Möglichkeit einzuführen, mit Mustern zu arbeiten, die denjenigen, die in Sprachen wie Kotlin gearbeitet haben, sehr vertraut sein sollten. Dies sind alles wunderbare Ergänzungen, die den Code lesbar und verwaltbar machen. Die Unterstützung für Muster und deren Verwendung wird durch c- 8 erweitert. Das Schlüsselwort is kann auch mit Tupelmustern verwendet werden. Vor diesem Hintergrund helfen uns die folgenden Szenarien, die wichtigsten Aspekte der Musterübereinstimmung zu veranschaulichen. Um die Wunder der Musterübereinstimmung zu erfassen, sollten wir zunächst die folgenden Mitarbeiter-Eltern- und Ingenieur- und Entwickler-Kinderkurse in Betracht ziehen.

Author: Franck Pertegas

Share This Post On