Swift 嵌套函数

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

在上面的程序中,嵌套函数wish2()被外部函数wish1()调用。

语句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

在上面的程序中,

  • 外部函数是operate(),返回类型为Function (Int,Int) -> Int。
  • 内部(嵌套)函数是 add()subtract()

嵌套函数add()和subtract()以某种方式在enclosing函数operate()之外使用。这是因为外部函数返回了其中一个函数。

我们将内部函数作为operation(10, 20)在enclosing函数operate()之外使用。程序在内部调用add(10, 20),输出结果为30。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程