Įterptosios funkcijos greitai (su pavyzdžiais)

Šiame straipsnyje sužinosite apie „Swift“ įdėtąsias funkcijas ir kaip tai veikia su pavyzdžiais.

Jei funkcija egzistuoja kitos funkcijos kūne, ji vadinama įdėta funkcija.

Įterptosios funkcijos sintaksė

 func funcname () (// išorinės funkcijos teiginiai func anotherFuncname () (// vidinės funkcijos teiginiai)) 

Čia funkcija anotherFuncnameyra kitos funkcijos kūno viduje funcname.

Reikėtų pažymėti, kad vidines funkcijas galima iškviesti ir naudoti tik uždarymo funkcijos (išorinės funkcijos) viduje.

1 pavyzdys: įdėta funkcija be grąžinimo verčių

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

Kai paleisite programą, išvestis bus:

Sveiki! Domkratas

Pirmiau pateiktoje programoje įdėta funkcija addGreetingAndPrint()iškviečiama iš uždarymo funkcijos outputMessageByGreeting().

Teiginyje outputMessageByGreeting("Jack")iškviečiama išorinė funkcija. addGreetingAndPrint()Išorinės funkcijos viduje esantis sakinys iškviečia metodą, kuris išduoda Sveiki! Džekas konsolėje.

Negalite iškviesti funkcijos addGreetingAndPrintuž funkcijos ribų outputMessageByGreeting.

2 pavyzdys: įdėta funkcija su parametrais ir grąžinimo reikšmėmis

Įdėtose funkcijose gali būti funkcijos su parametrais ir grąžinimo reikšmėmis.

 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) 

Kai paleisite programą, išvestis bus:

 5

Pirmiau pateiktoje programoje

  • išorinė funkcija yra operate()su funkcijos grąžinimo verte (Int,Int) -> Int.
  • o vidinės (įdėtos) funkcijos yra add()ir subtract().

Įdėtos funkcijos add()ir subtract()tokiu būdu yra naudojami už dengiančiosios funkcija operate(). Tai įmanoma, nes išorinė funkcija grąžina vieną iš šių funkcijų.

Vidinę funkciją naudojome už uždarymo funkcijos operate()kaip operation(2, 3). Programa vidiniu ryšiu paskambina add(2, 3)iš konsolės 5.

Įdomios straipsniai...