Bei all diesen ausgefallenen Mustern sollten wir nicht vergessen, wie wir den klassischen Schalter verwenden können. Wenn der Muster-Matching-Operator nicht definiert ist, greift Swift auf die Verwendung des Operators ==in Switch-Anweisungen zurück. Um es noch einmal zu betonen: Wir befinden uns nicht mehr im Bereich des Musterabgleichs. Die Swift-Sprachreferenz gibt acht verschiedene Mustervarianten an. Es kann schwierig sein, die richtige Syntax zu kennen, die in einem Musterübereinstimmungsausdruck verwendet werden kann. In einem typischen Anwendungsfall müssen Sie möglicherweise Typinformationen kennen, eine Variable entpacken oder einfach bestätigen, dass ein optionaler Wert nicht null ist. Mit dem richtigen Muster können Sie umständliche Auspackungen und nicht verwendete Variablen vermeiden. Die zweite Art von Muster wird für den vollständigen Musterabgleich verwendet, wobei die Werte, mit denen Sie übereinstimmen möchten, zur Laufzeit möglicherweise nicht vorhanden sind. Dazu gehören Enumerationsfallmuster, optionale Muster, Ausdrucksmuster und Typumwandlungsmuster. Sie verwenden diese Muster in einer Fallbeschriftung einer Switch-Anweisung, einer catch-Klausel einer do-Anweisung oder im Fall einer if-, while-, Guard- oder For-In-Anweisung. Ein optionales Muster entspricht Werten, die in einem bestimmten (umschlossenen) Fall einer optionalen-Enumeration umschlossen sind.

Optionale Muster bestehen aus einem Bezeichnermuster, dem unmittelbar ein Fragezeichen folgt, und werden an denselben Stellen wie Enumerationsfallmuster angezeigt. Universelle Bestätigungen werden für alle Finanzinstitute auf FIN als Teil der jährlichen SWIFT-Version 2020 von STANDARDS MT. verbindlich. Bereits ab November dieses Jahres, wenn das Standards MT Release 2019 aktiviert ist, können Nicht-gpi-Mitglieder Bestätigungen abgeben. Es gibt natürlich viele andere Möglichkeiten, Moderatoren in Swift zu verwenden, einschließlich der vollständigen Übernahme eines Designmusters wie Model View Presenter – aber mit einem leichten Ansatz wie diesem können wir die Vorteile von Moderatoren nutzen, ohne unseren gesamten Code auf ein neues Designmuster verschieben zu müssen. Auf der anderen Seite führen wir eine neue Abstraktions- oder Architekturkonzept in unsere App ein – daher ist es wichtig, genau zu definieren, welche Rolle wir in unserer App im Allgemeinen spielen lassen wollen, um Verwechslungen zu vermeiden. Im alten Ziel-C-Zeitalter gab es das berühmte BlocksKit, das es uns ermöglicht, mit UIKit/AppKit in der praktischen Blocksyntax umzugehen. Obwohl Ziel-C-Block schwer zu deklarieren ist, sind sie viel deklarativer als andere Kommunikationsmuster wie Delegat oder Behandlung von UIAlert-Aktionen.

Und mit der Schließung in Swift können wir noch schönere Dinge tun. Das as-Muster entspricht einem Wert, wenn der Typ dieses Werts zur Laufzeit mit dem Typ identisch ist, der auf der rechten Seite des as-Musters angegeben ist – oder einer Unterklasse dieses Typs. Wenn die Übereinstimmung erfolgreich ist, wird der Typ des übereinstimmenden Werts in das Muster umgegossen, das auf der rechten Seite des as-Musters angegeben ist. Und entscheidend ist, dass Bestätigungen den Aufbau neuer Mehrwertdienste ermöglichen, um Ihr Unternehmen zukunftssicher zu machen. Ein Wertbindungsmuster bindet übereinstimmende Werte an Variablen- oder Konstantennamen. Wertbindungsmuster, die einen übereinstimmenden Wert an den Namen einer Konstante binden, beginnen mit dem let-Schlüsselwort; diejenigen, die an den Namen der Variablen binden, beginnen mit dem Schlüsselwort var. Im obigen Beispiel verteilen wir auf jedes Bezeichnermuster im Tupelmuster (x, y). Aufgrund dieses Verhaltens lassen die Fallfälle “Switch case” (x, y) und “case” (lassen Sie x, lassen Sie y) mit den gleichen Werten überein. Die erste Art von Muster wird zum Zerstören von Werten in einfachen Variablen-, Konstanten- und optionalen Bindungen verwendet. Dazu gehören Platzhaltermuster, Bezeichnermuster und alle Wertbindungs- oder Tupelmuster, die sie enthalten. Sie können eine Typanmerkung für diese Muster angeben, um sie so einzuschränken, dass sie nur Mitwerten eines bestimmten Typs entsprechen.