Grundlagen von Closures und Capturing
Verstehen Sie die Closure-Syntax, Kurzschreibweisen für Argumente, Trailing Closures, Capture-Listen sowie escaping und non-escaping.
Grundlagen von Closures und Capturing ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.
Einführung
Diese Lektion stellt Closures vor: eigenständige Codeblöcke, die Sie weitergeben können. Sie lernen Syntax, Kurzargumente, Trailing Closures, Capture-Listen sowie escaping und non-escaping kennen.
Closure-Syntax
Closures ähneln leichtgewichtigen Funktionen. Die Syntax lautet: { (params) -> Return in ... }.
let greet = { (name: String) -> String in
return "Hello, \\(name)"
}
print(greet("Ada"))Kurzargumente
Swift stellt Kurzargumente wie $0 und $1 bereit, um Closures zu vereinfachen.
let doubled = [1,2,3].map { $0 * 2 }
print(doubled)Trailing Closure
Wenn ein Closure das letzte Argument ist, können Sie es außerhalb der Klammern schreiben: ein Trailing Closure.
func operate(_ x: Int, _ y: Int, _ f: (Int,Int)->Int) -> Int {
return f(x,y)
}
let sum = operate(2,3) { $0 + $1 }
print(sum)Grundlagen zu Capture
Closures erfassen Werte aus ihrem umgebenden Gültigkeitsbereich, etwa einen laufenden Zähler.
func makeCounter() -> () -> Int {
var count = 0
return {
count += 1
return count
}
}
let counter = makeCounter()
print(counter()) // 1
print(counter()) // 2Capture-Listen und escaping
Verwenden Sie Capture-Listen wie [weak self], um Retain-Zyklen zu vermeiden. Closures sind standardmäßig non-escaping; markieren Sie sie mit @escaping, wenn sie über den Aufruf hinaus gespeichert werden.
class Greeter {
var name = "Ada"
lazy var greet: () -> Void = { [weak self] in
print("Hello", self?.name ?? "?")
}
}
let g = Greeter()
g.greet()Frage zu Capture-Listen
Kurztest: Welche Aufgabe hat eine Capture-Liste?
Zusammenfassung
Zusammenfassung: Closures sind inline definierte Codeblöcke. Lernen Sie die Syntax, Kurzargumente und Trailing Closures kennen und steuern Sie das Capture-Verhalten mit Listen. Escaping-Closures bestehen über den Aufruf hinaus; non-escaping-Closures sind der Standard.
Häufig gestellte Fragen
Ist die Lektion „Grundlagen von Closures und Capturing“ kostenlos?
Ja — der vollständige Text von „Grundlagen von Closures und Capturing“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Grundlagen von Closures und Capturing“?
Verstehen Sie die Closure-Syntax, Kurzschreibweisen für Argumente, Trailing Closures, Capture-Listen sowie escaping und non-escaping. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.
Wie lange dauert die Lektion „Grundlagen von Closures und Capturing“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen von Closures und Capturing
- Capture-Listen – weak/unowned und Werterfassung
- Escaping vs. non-escaping, autoclosures