📜  Swift嵌套函数

📅  最后修改于: 2021-01-11 07:44:51             🧑  作者: Mango

快速嵌套函数

另一个函数的体内的函数称为嵌套函数。

句法:

func function1() {
    //statements of outer function
    func function2() {
        //statements of inner function
    }
}

参数说明:

在此,功能1是外部的函数,因为有另一个指定的函数2函数(嵌套函数)的功能1的内部。

注意:内部函数只能在外部函数内部调用和使用。

没有返回值的嵌套函数

func wish1(_ message: String) {    
    func wish2() {
        print("Good Morning! \(message)")
    }
    wish2 ()
}
wish1("Ajeet")

输出:

Good Morning! Ajeet

在上述程序中,从外部函数wish1()调用了嵌套函数wish2()。

语句wish1(“ Ajeet”)调用外部函数,而语句wish2()调用外部函数,该方法给出输出Good Morning Ajeet。

您不能在wish1函数之外调用wish2函数。

带参数和返回值的嵌套函数

嵌套函数还可以包含参数和返回值。

例:

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(10, 20)
print(result)

输出:

30

在上面的程序中

  • 外部函数是operation(),其返回值类型为Function(Int,Int)-> Int。
  • 内部(嵌套)函数是add()减去()

嵌套函数add()和减去()在封闭函数operate()之外被使用。这是可能的,因为外部函数返回这些函数之一。

我们已经将封闭函数operate()之外的内部函数用作operation(10,20)。该程序在内部调用add(10,20),该输出提供输出30。