Closures als parameters
Omdat closures net als strings en integers kunnen worden gebruikt, kun je ze ook aan functies doorgeven. De syntaxis hiervoor kan in het begin pijn doen aan je hersenen, dus we gaan het langzaam aan doen.
Eerst, hier is onze basis driving()
closure weer
let driving = { print("I'm driving in my car")}
Als we die closure aan een functie willen doorgeven, zodat hij binnen die functie kan worden uitgevoerd, zouden we het parametertype specificeren als () -> Void
. Dat betekent “accepteert geen parameters, en retourneert Void
” – Swift’s manier om te zeggen “niets”.
Dus kunnen we een travel()
-functie schrijven die verschillende soorten reisacties accepteert, en een bericht afdrukt voor en na:
func travel(action: () -> Void) { print("I'm getting ready to go.") action() print("I arrived!")}
We kunnen dat nu aanroepen met onze driving
closure, zoals dit:
travel(action: driving)
SPONSORED Bent u het zat om tijd te verspillen aan het debuggen van uw Swift-app? Instabug’s SDK is er om u te helpen de debugging-tijd te minimaliseren door u te voorzien van volledige apparaatgegevens, netwerklogboeken en reproductie-stappen bij elke bugmelding. Alle gegevens worden automatisch bijgevoegd. Er is slechts een regel code nodig voor de installatie. Begin nu met uw gratis proefperiode en verzend apps van hoge kwaliteit!
Probeer het gratis
Sponsor Hacking with Swift en bereik ’s werelds grootste Swift-gemeenschap!