Geneste functies in Swift (met voorbeelden)

In dit artikel leert u met voorbeelden over geneste functies in Swift en hoe het werkt.

Als een functie in de body van een andere functie bestaat, wordt deze geneste functie genoemd.

Syntaxis van een geneste functie

 func funcname () // statements van de buitenste functie func anotherFuncname () (// statements van de innerlijke functie)) 

Hier bevindt de functie anotherFuncnamezich in het lichaam van een andere functie funcname.

Opgemerkt moet worden dat innerlijke functies alleen kunnen worden aangeroepen en gebruikt binnen de omsluitende functie (uiterlijke functie).

Voorbeeld 1: geneste functie zonder retourwaarden

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

Wanneer u het programma uitvoert, is de uitvoer:

Hallo! Jack

In het bovenstaande programma wordt de geneste functie addGreetingAndPrint()aangeroepen vanuit de omsluitende functie outputMessageByGreeting().

De instructie outputMessageByGreeting("Jack")roept de uiterlijke functie aan. En de instructie addGreetingAndPrint()binnen de buitenste functie roept de methode aan die Hello! Jack in de console.

U kunt de functie niet addGreetingAndPrintbuiten de functie oproepen outputMessageByGreeting.

Voorbeeld 2: geneste functie met parameters en retourwaarden

Geneste functies kunnen functies bevatten met parameters en retourwaarden.

 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) 

Wanneer u het programma uitvoert, is de uitvoer:

 5

In het bovenstaande programma,

  • de buitenste functie is operate(), met retourwaarde van het type Functie (Int,Int) -> Int.
  • en de binnenste (geneste) functies zijn add()en subtract().

De geneste functie add()en subtract()in zekere zin worden gebruikt buiten de omsluitende functie operate(). Dit is mogelijk omdat de buitenste functie een van deze functies retourneert.

We hebben de innerlijke functie buiten de omsluitende functie gebruikt operate()als operation(2, 3). Het programma roept intern op add(2, 3)welke output 5 in de console.

Interessante artikelen...