Funktionsweise von defer
Führen Sie Code unabhängig vom Ausführungspfad beim Verlassen eines Gültigkeitsbereichs aus.
Funktionsweise von defer ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. 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 4 Lektionen.
Was defer bewirkt
Ein defer-Block plant Code zur Ausführung ein, sobald der aktuelle Gültigkeitsbereich verlassen wird, unabhängig davon, wie dies geschieht.
func demo() {
defer { print("cleanup") }
print("work")
}
demo()Wird beim Verlassen des Gültigkeitsbereichs ausgeführt
Der zurückgestellte Code wird ausgeführt, nachdem der restliche Gültigkeitsbereich abgeschlossen ist, unmittelbar bevor die Ausführung ihn verlässt.
func greet() {
defer { print("goodbye") }
print("hello")
}
greet()defer nach normalem Ablauf
Auch bei mehreren Anweisungen wird der Rumpf von defer zuletzt ausgeführt.
func process() {
defer { print("3 deferred") }
print("1 start")
print("2 middle")
}
process()defer innerhalb einer Schleife
Ein defer innerhalb des Schleifenkörpers wird am Ende jeder Iteration ausgeführt.
for i in 1...3 {
defer { print("end of iteration", i) }
print("start of iteration", i)
}defer innerhalb eines if
Der Gültigkeitsbereich kann jeder beliebige Block sein. Ein defer in einem if wird ausgeführt, wenn dieser if-Block endet.
func check(_ flag: Bool) {
if flag {
defer { print("leaving if block") }
print("inside if")
}
print("after if")
}
check(true)Aktuelle Werte erfassen
Der zurückgestellte Block erfasst Variablen als Referenz und sieht daher ihre Werte in dem Moment, in dem er ausgeführt wird.
func counterDemo() {
var count = 0
defer { print("final count:", count) }
count = 5
}
counterDemo()defer verzögert keine Arbeit
defer wird nicht asynchron ausgeführt. Es wird beim Verlassen des Gültigkeitsbereichs synchron ausgeführt, bevor die Funktion an ihren Aufrufer zurückkehrt.
func order() {
defer { print("B") }
print("A")
}
order()
print("C")Häufige Verwendung: Setup und Teardown zuordnen
Platzieren Sie das Teardown direkt neben dem Setup, damit beide visuell und logisch zusammengehören.
func session() {
print("open session")
defer { print("close session") }
print("do work")
}
session()defer in einem do-Block
Ein defer innerhalb eines do-Blocks wird ausgeführt, wenn dieser Block verlassen wird.
func run() {
do {
defer { print("do block cleanup") }
print("inside do")
}
print("after do")
}
run()Mehrere Anweisungen in defer
Ein defer-Block kann mehrere Anweisungen enthalten; alle werden gemeinsam beim Verlassen des Gültigkeitsbereichs ausgeführt.
func multi() {
defer {
print("step 1 of cleanup")
print("step 2 of cleanup")
}
print("main work")
}
multi()Warum defer verwenden
defer garantiert, dass das Aufräumen unabhängig davon erfolgt, wie der Gültigkeitsbereich endet. Dadurch sinkt die Wahrscheinlichkeit, dass es auf einem Pfad vergessen wird.
func guaranteed() {
defer { print("always runs") }
print("body")
}
guaranteed()Kurztest
Testen Sie den Ausführungszeitpunkt von defer.
Zusammenfassung
defer plant die Ausführung von Code am Ende des aktuellen Gültigkeitsbereichs ein, unabhängig davon, wie dieser verlassen wird. Es wird synchron und als Letztes im Gültigkeitsbereich ausgeführt und eignet sich ideal, um Teardown direkt neben dem Setup zu halten.
func demo() {
defer { print("last") }
print("first")
}
demo()Häufig gestellte Fragen
Ist die Lektion „Funktionsweise von defer“ kostenlos?
Ja — der vollständige Text von „Funktionsweise von defer“ 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 4 Lektionen.
Was lerne ich in „Funktionsweise von defer“?
Führen Sie Code unabhängig vom Ausführungspfad beim Verlassen eines Gültigkeitsbereichs aus. 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 4.
Wie lange dauert die Lektion „Funktionsweise von defer“?
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
- Funktionsweise von defer
- Reihenfolge mehrerer defer-Blöcke
- defer zur Ressourcenbereinigung
- defer mit Fehlern und vorzeitigen Rückgaben