💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# Swift 嵌套函数 > 原文: [https://www.programiz.com/swift-programming/nested-functions](https://www.programiz.com/swift-programming/nested-functions) #### 在本文中,您将了解 Swift 中的嵌套函数及其如何与示例一起使用。 如果[函数](/swift-programming/functions "Swift functions")存在于另一个函数的主体内,则称为嵌套函数。 ## 嵌套函数的语法 ```swift func funcname() { //statements of outer function func anotherFuncname() { //statements of inner function } } ``` 在此,函数`anotherFuncname`在另一个函数`funcname`的主体内部。 应当注意,内部函数只能在封闭函数(外部函数)内部调用和使用。 * * * ## 示例 1:没有返回值的嵌套函数 ```swift func outputMessageByGreeting(_ message: String) { func addGreetingAndPrint() { print("Hello! \(message)") } addGreetingAndPrint() } outputMessageByGreeting("Jack") ``` 运行该程序时,输出为: ```swift Hello! Jack ``` 在上述程序中,正在从封闭函数`outputMessageByGreeting()`调用嵌套函数`addGreetingAndPrint()`。 语句`outputMessageByGreeting("Jack")`调用外部函数。 并且外部函数内部的语句`addGreetingAndPrint()`调用输出`Hello! Jack`。 您不能在函数`outputMessageByGreeting`之外调用函数`addGreetingAndPrint`。 * * * ## 示例 2:具有参数和返回值的嵌套函数 嵌套函数可以包含带有参数和返回值的函数。 ```swift 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) ``` 运行该程序时,输出为: ```swift 5 ``` 在上面的程序中 * 外部函数为`operate()`,返回值类型为`Function(Int,Int) -> Int`。 * 内部(嵌套)函数为`add()`和`subtract()`。 嵌套函数`add()`和`subtract()`在封装函数`operate()`之外正在使用。 这是可能的,因为外部函数返回这些函数之一。 我们将封闭函数`operate()`之外的内部函数用作`operation(2, 3)`。 程序内部调用`add(2, 3)`,在控制台中输出 5。