Closures als Parameter
Da Closures genau wie Strings und Integers verwendet werden können, kann man sie an Funktionen übergeben. Die Syntax dafür kann einem anfangs das Hirn zermartern, also gehen wir es langsam an.
Zunächst ist hier wieder unsere einfache driving()
-Schließung
let driving = { print("I'm driving in my car")}
Wenn wir diese Schließung an eine Funktion übergeben wollten, damit sie in dieser Funktion ausgeführt werden kann, würden wir den Parametertyp als () -> Void
angeben. Das bedeutet „akzeptiert keine Parameter und gibt Void
zurück“ – Swift’s Art, „nichts“ zu sagen.
So können wir eine travel()
-Funktion schreiben, die verschiedene Arten von Reiseaktionen akzeptiert und eine Nachricht davor und danach ausgibt:
func travel(action: () -> Void) { print("I'm getting ready to go.") action() print("I arrived!")}
Wir können diese Funktion nun mit unserer driving
-Schließung wie folgt aufrufen:
travel(action: driving)
SPONSORED Sind Sie es leid, Zeit mit dem Debuggen Ihrer Swift-Anwendung zu verschwenden? Das SDK von Instabug hilft Ihnen, die Zeit für die Fehlersuche zu minimieren, indem es Ihnen vollständige Gerätedetails, Netzwerkprotokolle und Reproduktionsschritte mit jedem Fehlerbericht zur Verfügung stellt. Alle Daten werden automatisch angehängt. Für die Einrichtung ist nur eine Zeile Code erforderlich. Starten Sie jetzt Ihre kostenlose Testversion und liefern Sie hochwertige Apps aus!
Testen Sie es kostenlos
Sponsern Sie Hacking with Swift und erreichen Sie die weltweit größte Swift-Community!