Closures als parameters

nov 4, 2021
admin

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!

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.