© prettyboy80/Shutterstock.com
Swift-Highlights im Schnelldurchlauf

Im Spotlight


Bei der WWDC 2014 stellte Apple die Programmiersprache Swift vor, die als kompletter Ersatz von sowohl C als auch Objective-C gedacht ist. Am 9. September wurde dann der „Golden Master“ von Swift, Version 1.0 freigegeben – damit dürfen nun in Swift geschriebene iOS-Apps in den App Store eingereicht werden. Spätestens jetzt ergibt es also Sinn, sich mit Swift zu beschäftigen. Wir schauen uns einmal an, was die Sprache zu bieten hat. Um den Rahmen eines Artikels nicht zu sprengen, konzentrieren wir uns auf einige Highlights.

Playground und REPL

Natürlich ist es am Schönsten, direkt mit einer neuen Programmiersprache spielen zu können. Dazu müssen wir zunächst einmal Xcode 6 installieren. Dann können wir ein neues iOS-Projekt erzeugen und darin einen so genannten Playground anlegen. Code in einer Playground-Datei wird kontinuierlich neu übersetzt und ausgeführt.

Variablen und Konstanten

Variablen in Swift legen wir mit dem Schlüsselwort var an, Konstanten mit dem Schlüsselwort let. Die Typangabe steht im Gegensatz zu C und Java hinter dem Variablennamen:

var x: Int = 23 let y: Int = 42

In Objective-C mussten wir Konstanten noch mit dem Schlüsselwort const versehen. Um den Code kurz zu halten, haben sich das viele gespart. Nun haben wir zwei gleichlange Schlüsselworte für Variablen und Konstanten, was uns erlaubt, Konstanten zu verwenden und den Code dennoch kompakt zu halten.

Typinferenz

Wir können die Typangabe auch weglassen, sobald der Typ aus dem zugewiesenen Wert klar ist:

var x = 23 let y = 42

Diese so genannte Typinferenz hilft uns dabei, mit weniger Code zum gleichen Ziel zu kommen. Wir werden später noch Stellen sehen, an denen die Einsparungen deutlicher ausfallen.

Kontrollstrukturen

In Swift gibt es die gleichen Kontrollstrukturen wie in C: die Verzweigungen if/else und switch sowie die Schleifen for, while und do-while. Normale Klammern um den Bedingungsteil können aber weggelassen werden, und geschweifte Klammern bei den Codeblöcken sind nun Pflicht. Die geschweiften Klammern helfen, Fehler wie den unter dem Namen „goto fail“ bekannt gewordenen Bug in der SSL-Bibliothek von Apple zu vermeiden. Zusätzlich wurde eine for…in-Schleife ergänzt, die das Durchlaufen von unter anderem Ranges und Arrays erlaubt (Listing 1).

Listing 1

for i in 1...100 { if i % 15 == 0 { println("FizzBuzz") } else if i % 5 == 0 { println("Buzz") } else if i % 3 == 0 { println("Fizz") } else { println(i) } }

Die Umbauten an der switch-Anweisung (Listing 2) helfen sicher dabei, noch mehr Fehler zu vermeiden: Im Gegensatz zu C werden Fälle automatisch – ohne break – abgebrochen. Wollen wir einen Fallthrough wie in C, erreichen wir dies durch das Schlüsselwort fallthrough. Zudem muss ein switch vollständig sein, also alle Fälle abdecken. Sonst zwingt uns der Compiler zur Angabe eines default.

Listing 2

var groupCount = 23 switch groupCount { case 0: println("No one") case 1: println("One") case 2...12: println("A few") case _ where groupCount > 12: println("Many") default: () }

Der Beispielcode zeigt weitere Erweiterungen der switch-Anweisung: die Angabe eines Bereichs und die Angabe einer Bedingung mit where.

Funktionen

Funktionsdeklarationen in Swift werden mit dem Schlüsselwort func eingeleitet. Im Gegensatz zu C steht der Rückgabewert hinten:

func sum(a: Int, b: Int) -> Int ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang