Beágyazott funkciók gyorsan (példákkal)

Ebben a cikkben megismerheti a Swift beágyazott funkcióit és működését példákkal.

Ha egy függvény létezik egy másik függvény testében, akkor beágyazott függvénynek hívjuk.

Beágyazott függvény szintaxisa

 func funcname () (// a külső függvény utasításai func anotherFuncname () (// belső függvény utasításai)) 

Itt a függvény anotherFuncnameegy másik függvény testében van funcname.

Meg kell jegyezni, hogy a belső funkciókat csak a bezáró függvény (külső funkció) belsejében lehet meghívni és használni.

1. példa: Beágyazott függvény visszatérési értékek nélkül

 func outputMessageByGreeting(_ message: String) ( func addGreetingAndPrint() ( print("Hello! (message)") ) addGreetingAndPrint() ) outputMessageByGreeting("Jack") 

A program futtatásakor a kimenet a következő lesz:

Szia! Jack

A fenti programban a beágyazott függvényt addGreetingAndPrint()a mellékelő függvényből hívják meg outputMessageByGreeting().

Az utasítás outputMessageByGreeting("Jack")meghívja a külső függvényt. És a addGreetingAndPrint()külső függvényen belüli utasítás meghívja a Helló! Jack a konzolban.

A függvényt nem hívhatja a függvényen addGreetingAndPrintkívül outputMessageByGreeting.

2. példa: Beágyazott függvény paraméterekkel és visszatérési értékekkel

A beágyazott függvények paramétereket és visszatérési értékeket tartalmazó függvényeket tartalmazhatnak.

 func operate(with symbol:String) -> (Int, Int) -> Int ( func add(num1:Int, num2:Int) -> Int ( return num1 + num2 ) func subtract(num1:Int, num2:Int) -> Int ( return num1 - num2 ) let operation = (symbol == "+") ? add : subtract return operation ) let operation = operate(with: "+") let result = operation(2, 3) print(result) 

A program futtatásakor a kimenet a következő lesz:

 5.

A fenti programban

  • a külső függvény a operate()Function típusú visszatérő értékkel rendelkezik (Int,Int) -> Int.
  • a belső (beágyazott) funkciók pedig add()és subtract().

A beágyazott függvény add()és subtract()olyan módon használják kívül a befoglaló függvény operate(). Ez azért lehetséges, mert a külső függvény visszaadja ezen funkciók egyikét.

Már használják a belső függvény külső befoglaló függvény operate()a operation(2, 3). A program belsőleg hívja meg, add(2, 3)amely 5-öt ad ki a konzolból.

érdekes cikkek...