Closures som parametrar
Då closures kan användas precis som strängar och heltal kan du skicka in dem i funktioner. Syntaxen för detta kan göra ont i hjärnan i början, så vi tar det långsamt.
Först, här är vår grundläggande driving()
closure igen
let driving = { print("I'm driving in my car")}
Om vi vill skicka den closure in i en funktion så att den kan köras inuti den funktionen, skulle vi ange parametertypen som () -> Void
. Det betyder ”accepterar inga parametrar och returnerar Void
” – Swifts sätt att säga ”ingenting”.
Så vi kan skriva en travel()
-funktion som accepterar olika typer av resehandlingar och skriver ut ett meddelande före och efter:
func travel(action: () -> Void) { print("I'm getting ready to go.") action() print("I arrived!")}
Vi kan nu anropa den med hjälp av vår driving
-avslutning, så här:
travel(action: driving)
SPONSORERAD Är du trött på att slösa bort tid på att felsöka din Swift-app? Instabugs SDK är här för att hjälpa dig att minimera felsökningstiden genom att ge dig fullständiga enhetsuppgifter, nätverksloggar och reproduktionssteg med varje felrapport. Alla data bifogas automatiskt. Det krävs bara en kodrad för att konfigurera. Starta din kostnadsfria testversion nu och leverera kvalitetsappar!
Try it for free
Sponsorera Hacking with Swift och nå världens största Swift-community!