Fonctions imbriquées dans Swift (avec exemples)

Dans cet article, vous découvrirez les fonctions imbriquées dans Swift et comment cela fonctionne avec des exemples.

Si une fonction existe dans le corps d'une autre fonction, elle est appelée fonction imbriquée.

Syntaxe d'une fonction imbriquée

 func funcname () (// instructions de la fonction externe func anotherFuncname () (// instructions de la fonction interne)) 

Ici, la fonction anotherFuncnameest à l'intérieur du corps d'une autre fonction funcname.

Il convient de noter que les fonctions internes ne peuvent être appelées et utilisées qu'à l'intérieur de la fonction englobante (fonction externe).

Exemple 1: fonction imbriquée sans valeurs de retour

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

Lorsque vous exécutez le programme, la sortie sera:

salut! Jack

Dans le programme ci-dessus, la fonction imbriquée addGreetingAndPrint()est appelée à partir de la fonction englobante outputMessageByGreeting().

L'instruction outputMessageByGreeting("Jack")appelle la fonction externe. Et l'instruction addGreetingAndPrint()à l'intérieur de la fonction externe appelle la méthode qui génère Hello! Jack dans la console.

Vous ne pouvez pas appeler la fonction en addGreetingAndPrintdehors de la fonction outputMessageByGreeting.

Exemple 2: fonction imbriquée avec paramètres et valeurs de retour

Les fonctions imbriquées peuvent contenir des fonctions avec des paramètres et des valeurs de retour.

 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) 

Lorsque vous exécutez le programme, la sortie sera:

 5

Dans le programme ci-dessus,

  • la fonction externe est operate(), avec une valeur de retour de type Function (Int,Int) -> Int.
  • et les fonctions internes (imbriquées) sont add()et subtract().

La fonction imbriquée add()et subtract()d'une certaine manière sont utilisées en dehors de la fonction englobante operate(). Cela est possible car la fonction externe renvoie l'une de ces fonctions.

Nous avons utilisé la fonction interne en dehors de la fonction englobante operate()comme operation(2, 3). Le programme appelle en interne add(2, 3)ce qui génère 5 dans la console.

Articles intéressants...