Swift Nested Functions: In this tutorial, you will learn about nested functions in Swift and how it works with examples.

A function inside the body of another function is called nested function.

In the event that a function exists inside the body of another function, it’s called nested function.

Syntax of a nested function

func funcname() {
    //statements of outer function
    func anotherFuncname() {
        //statements of inner function

Here, the function anotherFuncname is inside the body of another function funcname.

It ought to be noticed that, inner functions can be just called and used inside the enclosing function (outer function).

Example 1: Nested function without return values

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

At the point when you run the program, the output will be:

Hello! Salman

In the above program, the nested function addGreetingAndPrint() is being called from the enclosing function outputMessageByGreeting().

The statement outputMessageByGreeting(“Salman”) calls the outer function. Furthermore, the statement addGreetingAndPrint() inside the outer function calls the strategy which outputs Hello! Salman in the console.

You can’t call the function addGreetingAndPrint outside of the function outputMessageByGreeting.

Example 2: Nested function with parameters and return values

Nested functions can contain functions with parameters and return values.

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)

At the point when you run the program, the output will be:


In the above program,

the outer function is work(), with return worth of type Function (Int,Int) – > Int.

furthermore, the inner (nested) functions are add() and subtract().

The nested function add() and subtract() in a way are being used outside of the enclosing function operate(). This is conceivable because the outer function returns one of these functions.

We’ve used the inner function outside the enclosing function operate() as operation(2, 3). The program inside calls add(2, 3)which outputs 5 in the console.

Thanks for reading! We hope you found this tutorial helpful and we would love to hear your feedback in the Comments section below. And show us what you’ve learned by sharing your photos and creative projects with us.


Leave a Reply

Avatar placeholder