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。