Verschachtelte Funktionen in Swift (mit Beispielen)

In diesem Artikel erfahren Sie mehr über verschachtelte Funktionen in Swift und wie es mit Beispielen funktioniert.

Wenn eine Funktion im Hauptteil einer anderen Funktion vorhanden ist, wird sie als verschachtelte Funktion bezeichnet.

Syntax einer verschachtelten Funktion

 func funcname () (// Anweisungen der äußeren Funktion func anotherFuncname () (// Anweisungen der inneren Funktion)) 

Hier befindet sich die Funktion anotherFuncnameim Körper einer anderen Funktion funcname.

Es ist zu beachten, dass innere Funktionen nur innerhalb der umschließenden Funktion (äußere Funktion) aufgerufen und verwendet werden können.

Beispiel 1: Verschachtelte Funktion ohne Rückgabewerte

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

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

Hallo! Jack

Im obigen Programm wird die verschachtelte Funktion addGreetingAndPrint()von der umschließenden Funktion aufgerufen outputMessageByGreeting().

Die Anweisung outputMessageByGreeting("Jack")ruft die äußere Funktion auf. Und die Anweisung addGreetingAndPrint()in der äußeren Funktion ruft die Methode auf, die Hello! Jack in der Konsole.

Sie können die Funktion nicht addGreetingAndPrintaußerhalb der Funktion aufrufen outputMessageByGreeting.

Beispiel 2: Verschachtelte Funktion mit Parametern und Rückgabewerten

Verschachtelte Funktionen können Funktionen mit Parametern und Rückgabewerten enthalten.

 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) 

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 5

Im obigen Programm

  • Die äußere Funktion ist operate()mit dem Rückgabewert vom Typ Funktion (Int,Int) -> Int.
  • und die inneren (verschachtelten) Funktionen sind add()und subtract().

Die verschachtelte Funktion add()und subtract()in einer Weise , werden außerhalb der einschließenden Funktion verwendet operate(). Dies ist möglich, weil die äußere Funktion eine dieser Funktionen zurückgibt.

Wir haben die innere Funktion außerhalb der umschließenden Funktion operate()als verwendet operation(2, 3). Das Programm ruft intern auf, add(2, 3)welche 5 in der Konsole ausgegeben werden.

Interessante Beiträge...