Pesastatud funktsioonid kiirelt (koos näidetega)

Selles artiklis saate tutvuda Swifti sisestatud funktsioonidega ja kuidas see toimib koos näidetega.

Kui funktsioon on mõne muu funktsiooni kehas, nimetatakse seda pesastatud funktsiooniks.

Pesastatud funktsiooni süntaks

 func funcname () (// välise funktsiooni avaldused func anotherFuncname () (// sisefunktsiooni avaldused)) 

Siin on funktsioon anotherFuncnamemõne muu funktsiooni kehas funcname.

Tuleb märkida, et sisemisi funktsioone saab kutsuda ja kasutada ainult ümbritseva funktsiooni sees (välimine funktsioon).

Näide 1: Pesastatud funktsioon ilma tagastusväärtusteta

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

Programmi käivitamisel on väljund järgmine:

Tere! Jack

Ülaltoodud programmis addGreetingAndPrint()kutsutakse pesastatud funktsiooni ümbritsevast funktsioonist outputMessageByGreeting().

Avaldus outputMessageByGreeting("Jack")kutsub välimist funktsiooni. Ja addGreetingAndPrint()välise funktsiooni sees olev lause kutsub meetodit, mis väljastab Tere! Jack konsoolis.

Funktsiooni ei saa helistada addGreetingAndPrintväljaspool funktsiooni outputMessageByGreeting.

Näide 2: Pesastatud funktsioon koos parameetrite ja tagastusväärtustega

Pesastatud funktsioonid võivad sisaldada parameetrite ja tagastusväärtustega funktsioone.

 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) 

Programmi käivitamisel on väljund järgmine:

 5

Ülaltoodud programmis

  • välimine funktsioon on operate()koos funktsiooni tagastatava väärtusega (Int,Int) -> Int.
  • ja sisemised (pesastatud) funktsioonid on add()ja subtract().

Astmeline funktsioon add()ja subtract()nii on kasutatud väljaspool ümbritseva funktsiooni operate(). See on võimalik, kuna välimine funktsioon tagastab ühe neist funktsioonidest.

Oleme kasutanud sisemist funktsiooni väljaspool sulgemisfunktsiooni operate()nagu operation(2, 3). Programm kutsub sisemiselt välja, add(2, 3)mis väljendab konsoolis 5.

Huvitavad Artiklid...