Menu
Coddy logo textTech

Swift Spickzettel

Zuletzt aktualisiert

Hello World & Grundlagen

Swift braucht auf oberster Ebene keine Boilerplate - eine einzige Zeile läuft.

OperationSyntax
Eine Zeile ausgebenprint("Hello, World!")
Ohne Zeilenumbruch ausgebenprint("Hi", terminator: "")
String-Interpolationprint("Hi \(name)")
Kommentar// this is a comment
Mehrzeiliger Kommentar/* ... */
Ein Modul importierenimport Foundation
Eine Datei ausführenswift run oder swift main.swift

Variablen (let / var) & Typen

Verwende let für Konstanten und var für veränderliche Werte; Typen werden meist abgeleitet.

OperationSyntax
Konstantelet age = 30
Variablevar count = 0
Expliziter Typlet name: String = "Ada"
BasistypenInt, Double, String, Bool, Character
TypumwandlungDouble(i), String(n), Int("42")
Tupellet pair = (1, "a")
Typaliastypealias ID = Int
Typ prüfenvalue is String, value as? String

Optionals

Optionals modellieren das mögliche Fehlen eines Werts; vor der Verwendung auspacken.

OperationSyntax
Optional deklarierenvar name: String? = nil
Optional Bindingif let n = name { ... }
Guard-Auspackenguard let n = name else { return }
Nil-Coalescinglet n = name ?? "default"
Optional Chaininguser?.address?.city
Erzwungenes Auspacken (unsicher)name!
Implizit ausgepacktvar name: String!
Über ein Optional mappenname.map { $0.count }

Strings

Strings sind Werttypen mit voller Unicode-Unterstützung.

OperationSyntax
Länges.count
Groß-/Kleinschreibungs.uppercased(), s.lowercased()
Verketten"foo" + "bar"
Interpolation"Total: \(price)"
Enthälts.contains("ell")
Hat Präfix / Suffixs.hasPrefix("he")
Aufteilens.split(separator: ",")
Ersetzens.replacingOccurrences(of: "a", with: "b")
Mehrzeiliger String""" ... """

Collections (Array, Dictionary, Set)

Drei zentrale Collection-Typen, allesamt Werttypen.

OperationSyntax
Array-Literalvar nums = [1, 2, 3]
Anhängennums.append(4)
Zugriff / Anzahlnums[0], nums.count
Map / filternums.map { $0 * 2 }, nums.filter { $0 > 1 }
Dictionary-Literalvar ages = ["Ada": 30]
Dictionary-Zugriffages["Ada"] gibt ein Optional zurück
Set-Literalvar ids: Set = [1, 2, 3]
In ein Set einfügenids.insert(4)
Dictionary durchlaufenfor (k, v) in ages { ... }

Kontrollfluss

Bedingungen brauchen keine Klammern; switch muss erschöpfend sein.

OperationSyntax
If / elseif x > 0 { ... } else { ... }
Ternärlet r = x > 0 ? "pos" : "neg"
Switchswitch n { case 1: ...; default: ... }
Switch mit Bereichcase 1...5: ...
For-in-Schleifefor i in 0..<10 { ... }
For-in über Arrayfor item in items { ... }
While-Schleifewhile x < 100 { ... }
Repeat-whilerepeat { ... } while x < 100
Break / continuebreak, continue

Funktionen & Closures

Funktionen haben benannte Parameter; Closures sind in sich geschlossene Codeblöcke.

OperationSyntax
Eine Funktion definierenfunc add(a: Int, b: Int) -> Int { a + b }
Externes Labelfunc greet(to name: String) { ... }
Standardparameterfunc greet(name: String = "World") { ... }
Variadischer Parameterfunc sum(_ nums: Int...) -> Int { ... }
Mehrere Rückgaben (Tupel)func bounds() -> (min: Int, max: Int) { ... }
Closure-Ausdrucklet f = { (x: Int) -> Int in x * x }
Trailing Closurenums.map { $0 * 2 }
Kurzform-Argumente{ $0 + $1 }

Structs vs. Klassen

Structs sind Werttypen (kopiert); Klassen sind Referenztypen (geteilt).

OperationSyntax
Ein Struct definierenstruct Point { var x: Int; var y: Int }
Eine Klasse definierenclass Person { var name: String }
Klassen-Initialisiererinit(name: String) { self.name = name }
Instanz erstellenlet p = Point(x: 1, y: 2)
Mutating-Struct-Methodemutating func move() { x += 1 }
Klassenmethodefunc greet() { ... }
Vererbung (nur Klassen)class Student: Person { ... }
Berechnete Propertyvar area: Int { width * height }
Statischer Memberstatic let shared = Manager()

Enums

Enums gruppieren zusammengehörige Werte und können assoziierte Daten tragen.

OperationSyntax
Ein Enum definierenenum Direction { case north, south }
Einen Case verwendenlet d = Direction.north
Auf Enum switchenswitch d { case .north: ... }
Rohwerteenum Status: Int { case ok = 200 }
Auf Rohwert zugreifenStatus.ok.rawValue
Aus Rohwert initialisierenStatus(rawValue: 200)
Assoziierte Wertecase result(Int, String)
Methoden an Enumsfunc label() -> String { ... }

Die Swift-Syntax, die du am häufigsten brauchst, auf einer Seite. Dieser Swift-Spickzettel ist eine Schnellreferenz für die Kernsprache - Konstanten und Variablen, Optionals, Strings, Collections, Kontrollfluss, Funktionen und Closures sowie die Structs, Klassen und Enums, mit denen du iOS- und macOS-Apps baust.

Alles hier ist Standard-Swift und kompiliert mit der offiziellen Toolchain. Kopiere, was du brauchst, oder probiere jeden Codeschnipsel live im Swift-Playground aus - kein Xcode nötig.

Swift-Spickzettel FAQ

Ist dieser Swift-Spickzettel kostenlos?
Ja. Dieser Swift-Spickzettel ist völlig kostenlos, ohne erforderliche Anmeldung. Setze ein Lesezeichen und komm jederzeit wieder, wenn du ein Optional-Muster, eine Closure-Syntax oder eine Collection-Methode nachschlagen möchtest.
Wie packe ich ein Optional in Swift aus?
Ein Optional kann einen Wert oder nil halten, daher packst du es vor der Verwendung aus. Die sicheren Wege sind Optional Binding (if let n = name { ... }), ein guard let am Anfang einer Funktion, der Nil-Coalescing-Operator (name ?? "default") und Optional Chaining (user?.name). Erzwungenes Auspacken mit name! funktioniert, stürzt aber ab, wenn der Wert nil ist, also greife nur dann dazu, wenn du sicher bist.
Was ist der Unterschied zwischen einem Struct und einer Klasse in Swift?
Ein struct ist ein Werttyp: Beim Zuweisen oder Übergeben wird eine Kopie erstellt, sodass Änderungen das Original nicht betreffen. Eine class ist ein Referenztyp: Kopien teilen sich dieselbe Instanz, und nur Klassen unterstützen Vererbung. Apples Empfehlung ist, standardmäßig Structs zu bevorzugen und eine Klasse zu verwenden, wenn du gemeinsamen veränderlichen Zustand oder Vererbung brauchst.
Kann ich Swift online üben?
Ja. Öffne den Swift-Playground, um jeden Codeschnipsel aus diesem Spickzettel in deinem Browser auszuführen - kein Xcode zu installieren. Wenn du Struktur möchtest, führt dich Coddys kostenloser interaktiver Swift-Kurs Schritt für Schritt von Optionals und Collections zu Structs, Klassen und Enums.
Ist dieser Spickzettel für Anfänger geeignet?
Ja. Er ist von den häufigsten Themen (Variablen, Optionals, Kontrollfluss) hin zu den fortgeschrittenen (Closures, Structs vs. Klassen, Enums) gegliedert, sodass du die oberen Abschnitte schon am ersten Tag nutzen und in den Rest hineinwachsen kannst.
Coddy programming languages illustration

Lerne Swift mit Coddy

LOS GEHT'S