Funcții imbricate în Swift (cu exemple)

În acest articol, veți afla despre funcțiile imbricate în Swift și cum funcționează cu exemple.

Dacă există o funcție în corpul altei funcții, aceasta se numește funcție imbricată.

Sintaxa unei funcții imbricate

 func funcname () (// instrucțiuni ale funcției externe func anotherFuncname () (// instrucțiuni ale funcției interioare)) 

Aici, funcția anotherFuncnamese află în corpul altei funcții funcname.

Trebuie remarcat faptul că funcțiile interioare pot fi apelate și utilizate numai în interiorul funcției de închidere (funcția exterioară).

Exemplul 1: Funcție imbricată fără valori returnate

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

Când rulați programul, ieșirea va fi:

Salut! Jack

În programul de mai sus, funcția imbricată addGreetingAndPrint()este apelată din funcția de închidere outputMessageByGreeting().

Declarația outputMessageByGreeting("Jack")apelează funcția exterioară. Și declarația din addGreetingAndPrint()interiorul funcției externe numește metoda care produce ieșire Bună ziua! Jack în consolă.

Nu puteți apela funcția addGreetingAndPrintîn afara funcției outputMessageByGreeting.

Exemplul 2: Funcție imbricată cu parametri și valori returnate

Funcțiile imbricate pot conține funcții cu parametri și valori returnate.

 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) 

Când rulați programul, ieșirea va fi:

 5

În programul de mai sus,

  • funcția exterioară este operate(), cu valoarea returnată de tipul Funcție (Int,Int) -> Int.
  • iar funcțiile interioare (imbricate) sunt add()și subtract().

Funcția imbricată add()și subtract()într-un fel sunt utilizate în afara funcției de închidere operate(). Acest lucru este posibil deoarece funcția exterioară returnează una dintre aceste funcții.

Am folosit funcția interioară în afara funcției de închidere operate()ca operation(2, 3). Programul apelează intern add(2, 3)ce ieșire 5 în consolă.

Articole interesante...