Swift嵌套函数介绍和用法示例

本文概述

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

句法:

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

参数说明:

此处, function1是外部函数, 因为在function1内部还有另一个名为function2(嵌套函数)的函数。

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

没有返回值的嵌套函数

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。


微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?