Nestede funksjoner i Swift (med eksempler)

I denne artikkelen vil du lære om nestede funksjoner i Swift og hvordan det fungerer med eksempler.

Hvis en funksjon eksisterer inne i kroppen til en annen funksjon, kalles den nestet funksjon.

Syntaks for en nestet funksjon

 func funcname () (// uttalelser om ytre funksjon func anotherFuncname () (// uttalelser om indre funksjon)) 

Her er funksjonen anotherFuncnameinne i kroppen til en annen funksjon funcname.

Det skal bemerkes at indre funksjoner bare kan kalles og brukes inne i den omsluttende funksjonen (ytre funksjon).

Eksempel 1: Nestet funksjon uten returverdier

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

Når du kjører programmet, vil utdataene være:

Hallo! Jack

I det ovennevnte programmet blir den nestede funksjonen addGreetingAndPrint()kalt fra den omsluttende funksjonen outputMessageByGreeting().

Uttalelsen outputMessageByGreeting("Jack")kaller den ytre funksjonen. Og uttalelsen addGreetingAndPrint()inne i den ytre funksjonen kaller metoden som gir ut Hello! Jack i konsollen.

Du kan ikke ringe funksjonen addGreetingAndPrintutenfor funksjonen outputMessageByGreeting.

Eksempel 2: Nestet funksjon med parametere og returverdier

Nestede funksjoner kan inneholde funksjoner med parametere og returverdier.

 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) 

Når du kjører programmet, vil utdataene være:

 5

I programmet ovenfor,

  • den ytre funksjonen er operate(), med returverdien av typen Funksjon (Int,Int) -> Int.
  • og de indre (nestede) funksjonene er add()og subtract().

Den nestede funksjonen add()og blir subtract()på en måte brukt utenfor den omsluttende funksjonen operate(). Dette er mulig fordi den ytre funksjonen returnerer en av disse funksjonene.

Vi har brukt den indre funksjonen utenfor den omsluttende funksjonen operate()som operation(2, 3). Programmet kaller internt add(2, 3)hvilke utganger 5 i konsollen.

Interessante artikler...