上一章Swift教程请查看:swift函数参数和返回值
在本文中,你将了解Swift中的嵌套函数以及它是如何与示例一起工作的。
如果一个函数存在于另一个函数的主体中,则称为嵌套函数。
嵌套函数的语法
func funcname() {
// 外部函数语句
func anotherFuncname() {
// 内部函数语句
}
}
这里,函数anotherFuncname位于另一个函数funcname的内部。
应该注意,内部函数只能在封闭函数(外部函数)内部调用和使用。
例1:没有返回值的嵌套函数
func outputMessageByGreeting(_ message: String) {func addGreetingAndPrint() {
print("Hello! \(message)")
}
addGreetingAndPrint()
}
outputMessageByGreeting("Jack")
在上面的程序中,嵌套的函数addGreetingAndPrint()是从封闭的函数outputMessageByGreeting()中调用的。
语句outputMessageByGreeting(“Jack”)调用外部函数,外部函数中的addGreetingAndPrint()语句调用输出到控制台。
你不能在outputMessageByGreeting函数之外调用addGreetingAndPrint函数。
例2:带有参数和返回值的嵌套函数嵌套函数可以包含带有参数和返回值的函数。
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)
print(result)
在上面的程序中,
- 外部函数是operation(),返回类型为function (Int,Int) -> Int的值。
- 内部(嵌套)函数是add()和subtract()。
我们使用了包含函数operate()之外的内部函数作为operation(2,3)。程序内部调用add(2,3),它在控制台中输出5。
推荐阅读
- swift递归函数 – Swift最新教程
- swift函数参数和返回值 – Swift最新教程
- swift定义和调用函数解析 – Swift最新教程
- swift字典用法和操作全解 – Swift最新教程
- swift集合的使用和操作全解 – Swift最新教程
- swift数组的使用和操作全解 – Swift最新教程
- swift guard语句 – Swift最新教程
- swift continue语句 – Swift最新教程
- swift break语句 – Swift最新教程