Uzávěry jako parametry
Protože lze uzávěry používat stejně jako řetězce a celá čísla, můžete je předávat do funkcí. Z této syntaxe vás může zpočátku bolet mozek, takže na to půjdeme pomalu.
Nejprve opět náš základní uzávěr driving()
let driving = { print("I'm driving in my car")}
Pokud bychom chtěli tento uzávěr předat do funkce, aby mohl být spuštěn uvnitř této funkce, zadali bychom typ parametru () -> Void
. To znamená „nepřijímá žádné parametry a vrací Void
„, což je způsob, jakým Swift říká „nic“.
Můžeme tedy napsat funkci travel()
, která přijímá různé druhy cestovních akcí a vypisuje zprávu před a po:
func travel(action: () -> Void) { print("I'm getting ready to go.") action() print("I arrived!")}
Tu nyní můžeme zavolat pomocí našeho uzávěru driving
, například takto:
travel(action: driving)
SPONSORED Už vás nebaví ztrácet čas laděním aplikace Swift? Instabug SDK je tu proto, aby vám pomohl minimalizovat čas potřebný k ladění tím, že vám u každého hlášení chyby poskytne kompletní údaje o zařízení, síťové protokoly a kroky reprodukce. Všechna data jsou připojena automaticky. K nastavení stačí jediný řádek kódu. Spusťte zkušební verzi zdarma hned teď a dodávejte kvalitní aplikace!
Vyzkoušejte zdarma
Sponzorujte Hacking with Swift a oslovte největší komunitu uživatelů Swiftu na světě!
.