Swift 5: Prüfung auf Vielfaches

Dieser Artikel ist eine schriftliche Ergänzung zu einem Let‘s Code-Video, das bereits vor kurzem auf meinem YouTube-Kanal erschienen ist und das ich am Ende dieses Beitrags zusätzlich noch einbetten werde. Darin geht es um eine neue Methode in Swift 5 namens isMultiple(of:), die in einer Vielzahl von Zahlen-Typen implementiert ist (zum Beispiel in Int und seinen verschiedenen Variationen wie Int8 oder Int16 und in UInt).

Mithilfe dieser Methode ist es möglich zu überprüfen, ob eine Zahl ein Vielfaches einer anderen Zahl ist. Bisher (und auch in vielen anderen Programmiersprachen) setzt man für einen solchen Zweck die Ermittlung eines Restwerts ein, und prüft den dann gegen 0. Das folgende Beispiel soll das einmal praktisch verdeutlichen.

let valueToCheck = 4
if valueToCheck % 2 == 0 {
	// valueToCheck ist ein Vielfaches von 2.
} else {
	// valueToCheck ist kein Vielfaches von 2.
}

Auch wenn dieser Code an sich vollkommen korrekt ist und natürlich auch in Swift 5 weiterhin fehlerfrei funktioniert, ist er für den gezeigten Fall nicht unbedingt gut zu lesen. Warum ermittelt man den Restwert bei der Division von valueToCheck durch 2 und prüft das Ergebnis gegen 0? Möglicherweise braucht man als Entwickler einen Moment, wenn man derartigen Code sieht, um zu begreifen, was an der entsprechenden Stelle eigentlich konkret überprüft werden soll und welchen Sinn der Code hat.

Und genau hier springt die neue Methode isMultiple(of:) ein. Wie geschrieben kann sie auf verschiedenste Zahlenwerte aufgerufen werden. Sie prüft, ob der Aufrufer der Methode ein Vielfaches von jener Zahl ist, die als Parameter übergeben wird. Ist das der Fall, liefert die Methode true zurück, andernfalls false.

Das folgende Listing demonstriert den Einsatz der Methode isMultiple(of:) auf Basis des Beispiel von gerade eben. Es fällt sehr schnell auf, dass der Code – der weiterhin exakt die gleiche Funktion ausführt – bereits auf den ersten Blick deutlich verständlicher und insgesamt wesentlich besser lesbar ist.

let valueToCheck = 4
if valueToCheck.isMultiple(of: 2) {
	// valueToCheck ist ein Vielfaches von 2.
} else {
	// valueToCheck ist kein Vielfaches von 2.
}

Natürlich macht diese neue Methode die Ermittlung von Restwerten mittels % in keinster Weise überflüssig, gibt es doch unzählige andere Szenarien, in denen genau jener Restwert von entscheidendem Interesse ist (und nicht, ob eine Zahl einfach ein Vielfaches einer anderen ist). Dennoch trägt die Methode in den Fällen, in denen sie sinnvoll eingesetzt werden kann, dazu bei, Swift-Code verständlicher zu machen.

Fazit

Keine Frage: Die neue isMultiple(of:)-Methode in Swift 5 ist keine bahnbrechende und revolutionäre Neuerung, auf die Swift-Programmierer sehnsüchtig gewartet haben. Wie ein Mitglied der Community auf YouTube aber so schön treffend schrieb, handelt es sich dabei um sehr feinen Syntactic Sugar, der einen großen Teil dazu beitragen kann, Swift-Code besser lesbar zu machen. Und auch solch einfache Optimierungen können die Programmierung mit Swift nachhaltig verbessern. Schließlich kann es jedem einzelnen von uns nur zugute kommen, wenn Swift-Code jetzt und auch in Zukunft so leicht verständlich wie nur möglich ist.

Euer Thomas

Weiterführende Links zum Artikel


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert